用matlab实现大文本文件指定字符串的查找与替换

 时间:2024-10-12 13:05:53

1、需要读取修改源文件如下图

用matlab实现大文本文件指定字符串的查找与替换

2、清空空间,输入文件路径,以及ID号,和厚度。clcclearclose allfilename='D:\thinkpad\Desktop\test.txt';PartID=1;%要修改的ID号newthickness=0.9;%输入修改厚度

3、由于文件中每个字符加上空格是10个字符,所以输入值必须保证10字符,才能与test.txt进行精确查找。也得判断PartID,newthickness是几位。strPartID=num2str(PartID);strnewtemp=num2str(newthickness);LenstrPID=length(strPartID);LenstrTID=length(strnewtemp);for jk=1:10-LenstrPID strPartID=[' ',strPartID];%添加空格,保证只占用10个字符endfor jl=1:10-LenstrTID strnewtemp=[' ',strnewtemp];%添加空格,保证只占用10个字符endLenstrPID=length(strPartID);LenstrTID=length(strnewtemp);

4、查找替换主文竭惮蚕斗件。主要使用fgetl,strfind,strcmp,fseek,已经fprintf写函数。用fprintf函数将strnew替换文件中的” 0.8 0.8 0.8 0.8 “。程序如下:if LenstrPID==10&&LenstrTID==10strnew=[strnewtemp,strnewtemp,strnewtemp,strnewtemp];%生成要替换的厚度[fid,errmsg]=fopen(filename,'r+');if fid<0 disp(errmsg); disp('不能打开文件');else flag=1; while(~feof(fid))%|flag tline=fgetl(fid); if ischar(tline); tline=upper(tline); if ~isempty(strfind(tline, '*SECTION_SHELL')); %字符串匹配 for k=1:2;%将光标移动到PartID行 tpart=fgetl(fid); end if strcmp(strPartID,tpart(1:10));%是否是指定PartID fseek(fid,0,'cof'); %那么找到把光标移到这个字符串前 fprintf(fid,'%s',strnew); % flag=0; break; end end end endendfclose(fid);if flag disp('k文件中没有厚度或者指定PartID');else disp('修改完成');endelse disp('值占用空间不是10个字节,检查程序')end

5、运行结束后,结果如下图:

用matlab实现大文本文件指定字符串的查找与替换
  • matlab怎样不使用科学计数法
  • 如何在matlab画的图中改变坐标显示的范围
  • Matlab输出数据如何到excel文件中
  • 如何在MATLAB中获取时间
  • Matlab如何读取文本文件
  • 热门搜索
    爱护公物手抄报 读书手抄报资料 关于网络安全的手抄报 爱我中华手抄报内容 普通话手抄报简单 冬天的手抄报 民俗手抄报 英雄事迹手抄报 防疫有我爱卫同行手抄报 世界无烟日手抄报图片