MATLAB替换TXT文件中的指定行的全部内容

MATLAB替换TXT文件中的指定行的全部内容

本文说明:

本文是在“利用matlab把指定字符串在原位置替换为新的字符串(替换txt文件中的部分数据)”一文,
原文链接:https://blog.youkuaiyun.com/u013614126/article/details/19681665
的基础上,针对其未解决的替换txt某行全部内容fseek函数的缺陷进行讨论,提出问题的办法(改进)。

问题提出

在上述文章章末这样写道:
根据Matlab的帮助文件,实现重写有两种办法,一种是替换的内容的长度等于原来一行内容长度的时候,可以精确替换,另一种是替换的内容的长度大于原来一行内容长度的时候,这一行之后的所有行都要重新写。

在本人学习研究之后,发现若txt文档很大(长),替换的内容的长度大于原来一行内容长度的时候,这一行之后的所有行都要重新写,必然很繁琐,且耗时。故提出以下解决办法,即使替换内容大于原先行长度,也只需要重写指定行内容即可。

问题解决

  1. 第一步要求:
    将txt文件中的替换指定行后空一行,保存
  2. 第二步,写MATLAB程序:
clc;
clear all;
close all;
 
replaceLine = 5;     %指定的替换行,将第5行替换
myformat = '%s\n';   %输出格式,注意:\n不能少
newData ='LAY';         %替换内容
 
fid = fopen('NEW.txt','r+');    
%txt在MATLAB工作目录下,直接写文件名和后缀即可,否则请写全路径,如:fid = fopen('C:\NEW.txt','r+'); 
for k=1:(replaceLine-1)
   fgetl(fid);
end
 
% 设置光标位置
fseek(fid, 0, 'cof'); %在文件当前位置光标向后移动0字节

fprintf(fid, myformat, newData);  %重写该行 
fclose(fid);

3.第三步 运行

若有更好的解决办法,请指正。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值