我有一个文本文件如下。
我想更改高亮度的弦线,如下所示。
我可以使用' strrep'替换一行。功能如下。
fid=fopen('a.bdf');
A=fread(fid,'uint8=>char')';
B=strrep(A,'PSHELL 1 1 15. 1 1',['PSHELL 1 1 20. 1 1']);
但是,我不知道如何使用strrep将一个字符串行替换为两个字符串行。
我刚刚复制并粘贴如下。
fid=fopen('a.bdf');
A=fread(fid,'uint8=>char')';
B=strrep(A,'PSHELL 1 1 15. 1 1',['PSHELL 1 1 20. 1 1
PSHELL 2 1 2. 1 1']);
但是,它没有用。
如何使用' strrep'来替换此字符串行?
答案 0 :(得分:1)
在新子字符串中添加换行符' \ r \ n' (可能因操作系统而异),如
B=strrep(A,'PSHELL 1 1 15. 1 1',['PSHELL 1 1 20. 1 1\r\nPSHELL 2 1 2. 1 1']);
请记住,当您要写入文件时,您必须使用
fid=fopen('a.bdf','r+');
使用您的方法,您必须使用B中的新内容覆盖原始文件。
编辑:完整代码
fid=fopen('a.bdf','r+');
A=fread(fid,'uint8=>char')';
B=strrep(A,'PSHELL 1 1 15. 1 1','PSHELL 1 1 20. 1 1\r\nPSHELL 2 1 2. 1 1');
frewind(fid);
fprintf(fid,B);
fclose(fid);