翻阅了些网上现有的代码资料,发现都不理想,本文使用一些笨法子实现了同名文件中的指定行删除功能。
% system("修改后缀.bat"); % 运行.bat脚本,忽略即可
fileID = fopen('test2.txt','r+'); % 以读写方式打开源文件
fout = fopen('test2_new.txt','w'); % 以写的方式打开替身文件
for i=1:16
fgetl(fileID); % 将光标移动到第16行
end
while ~feof(fileID) % 如果不到文末,持续循环
tline = fgetl(fileID);
fprintf(fout,'%s\n',tline); % 将内容写入到替身文件
end
fclose(fout) % 关闭文件
fclose(fileID)
system("del test2.txt"); % 删除源文件
system("copy test2_new.txt test2.txt"); % 复制替身文件为源文件同名文件
system("del test2_new.txt"); % 删除替身文件
说明: 该法效率较为低下,本质上是将想保留的文本内容保存到一个新文件中,然后删除源文件,并重命名替身文件,借助了MATLAB的system
函数及DOS命令。