我创建了一个功能,允许从文本文件中复制多行并创建一个新文件,让我们说我只想采用$$ElmLodlv
和{{1}之间的数据}。
这是代码
$$ElmNet
问题是我真的不知道如何在与fID = fopen(fileName,'r');
tline=fgetl(fID) ;
while isempty (strfind(tline,'$$ElmLodlv'))
tline=fgetl(fID) ;
end
buffer = fread(fID,Inf) ;
fclose(fID) ;
fID=fopen(newFileName,'w');
fwrite(fID, buffer) ;
fclose(fID);
end
对应的行中停止我的缓冲区,换句话说,我的函数会创建一个从$$ElmNet
到最后的新文件的文件。
任何想法如何做到这一点?
答案 0 :(得分:0)
如何替代fread(fID,Inf)
:
buffer=0;
while ~feof(fID)
tline=fgetl(fID);
if ~isempty (strfind(tline,'$$ElmNet'))
break;
end
buffer(end+1:end+2+length(tline))=[tline 13 10];
end;
buffer=buffer(2:end);
请注意,[13 10]
等于上面代码中的\n
。
希望它有所帮助!