Endnote to Bibtex

2017-01-16  by:CAE仿真在线  来源:互联网

为了方便将Endnote格式转换为Bibtex格式,特编写如下程序。

Endnote在转换为Bibtex格式时,缺少label项,如果文献较多的情况下,人工添加是非常费时费力的。网上相关的程序又少。


签于转出格式为TXT,所以就用MATLAB编写相关代码,实现批量添加label项。

label项格式为 author-year-pages

如需其它命名格式可自行在代码中添加,非常简单。

注意:本程序运行时,请先在Endnote输出文件第一行回车,即@从第二行起。第一行留空。


原文件aa.txt

Endnote to Bibtex

回车第一行留空aa.txt

Endnote to Bibtex




处理

endnote2bibtex('aa.txt')

Endnote to Bibtex













===========源代码================



% label =Author-year-pages
function endnote2bibtex(filename)

% Author: J.H.Zhujhzhu99@gmail.com
fid = fopen(filename);

% create label
k = 0;
while ~feof(fid)
tline = fgetl(fid);
if ~isempty(strfind(tline,'author'))
author{k} = getstring(tline,'author');
elseif ~isempty(strfind(tline,'year'))
year{k} = getstring(tline,'year');
elseif ~isempty(strfind(tline,'pages'))
pages{k} = getstring(tline,'pages');
end

if sum(tline=='@')
k = k+1;
end
end

for i =1:k
label{i}=[author{i},'-',year{i},'-',pages{i}];
end

k =0;frewind(fid)
fid2 = fopen(['New_',filename],'w+');
while ~feof(fid)
tline = fgetl(fid);
if sum(tline=='@')
k = k+1;
tline = updatelabel(tline,label{k});
end
fwrite(fid2,tline);
fprintf(fid2,'\n');

end
fclose all


function s = getstring(tline,flag)


switch flag
case 'author'
idx_start=findstr(tline,'{');
idx_end = findstr(tline,',');
s = tline(idx_start+1:idx_end(1)-1);
idx = findstr(s,' ');
if ~isempty(idx)
s(idx)=[];
end


case 'year'
idx_start=findstr(tline,'{');
idx_end = findstr(tline,'}');
s = tline(idx_start+1:idx_end-1);
case 'pages'
idx_start=findstr(tline,'{');
idx_end = findstr(tline,'}');
s = tline(idx_start+1:idx_end-1);
end

function s = updatelabel(s,label)

s = [s,label,','];



开放分享:优质有限元技术文章,助你自学成才

相关标签搜索:Endnote to Bibtex MatLab培训 MatLab培训课程 MatLab在线视频教程 MatLab技术学习教程 MatLab软件教程 MatLab资料下载 MatLab代做 MatLab基础知识 Fluent、CFX流体分析 HFSS电磁分析 Ansys培训 Abaqus培训 

编辑
在线报名:
  • 客服在线请直接联系我们的客服,您也可以通过下面的方式进行在线报名,我们会及时给您回复电话,谢谢!
验证码

全国服务热线

1358-032-9919

广州公司:
广州市环市中路306号金鹰大厦3800
电话:13580329919
          135-8032-9919
培训QQ咨询:点击咨询 点击咨询
项目QQ咨询:点击咨询
email:kf@1cae.com