关于matlab自动修改txt文件的问题

如图这是一个txt文件,原文件里没有倒数第二行的elsum(summary)=all这条命令,现在我想用matlab实现自动添加到倒数第二行该如何做?多谢各位帮助... 如图这是一个txt文件,原文件里没有倒数第二行的elsum(summary)=all这条命令,现在我想用matlab实现自动添加到倒数第二行 该如何做?多谢各位帮助 展开
 我来答
tianxiawulang
2014-03-02 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2610万
展开全部

需求和条件没太描述清楚:

1、为什么要自动修改?因为同类文件有很多个?

2、所谓的“倒数第二行”根据什么规则来定?至少有以下几种可能:

(1)最后一个换行符之前;

(2)最后一个非空行之前(也就是,文件尾部可能有多个空行,应该被忽略);

(3)查找特征,例如“BEIGIN BULK”,放在该行之前。这种情况还要考虑:会不会有多个?如果有多个,应该放在最后一个的前面?

3、修改后是写回原文件,还是另外建立文件(建议后者,可新建文件夹,把改后的文件放在新文件夹中,便于核对)?

 

这些相关的条件和要求请楼主明确一下,编程序倒是不困难。

更多追问追答
追问

首先感谢你的热情帮助!

由于字数限制,我通过图片回答了你的回复

追答

参考代码:

fid = fopen(file, 'rt+');
s = fread(fid,inf,'*char')';
inx=strfind(s,'BEIGIN BULK');
s1=[s(1:inx(end)-1) 'elsum(summary)=all' 10 s(inx(end):end)];
fseek(fid, 0, 'bof');
fwrite(fid,s1);
fclose(fid);

其中file为需要处理的文件名。建议先找几个文件测试一下,对结果满意再正式使用。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式