替换文本文件中的字符串

时间:2017-02-25 18:49:37

标签: string matlab text

我想在MATLAB中替换文本文件中的字符串。

要读取指定的行,我使用了代码:

fid = fopen(file_name, 'r');
tt = textscan(fid, '%s', 1, 'delimiter', '\n', 'headerlines', i); 
ttt = str2num(tt{1}{1});

其中file_name是我的文件的名称,ttt是一个单元格数组,其中包含以整数转换的i字符串。

例如,ttt = 1 2 3 4 5 6 7 8

现在,我想用ttt更改ttt = 0 0 0 0 0 0 0 0 并在文件的第ttt行写下新的i

有人有想法解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

可能的实施是

security:
    firewalls:
        [...]
        secured_area:
            pattern: ^/
            your_own_factory: ~ #tells symfony to use the AppBundle\Security\YourOwnFactory 

这会改变input.txt:

fid = fopen('input.txt', 'r+');
tt = textscan(fid, '%s', 1, 'delimiter', '\n', 'headerlines', 1); % scan the second line
tt = tt{1}{1};
ttt = str2num(tt); %parse all the integers from the string
ttt = ttt*0; %set all integers to zero

fseek(fid, length(tt), 'bof'); %go back to the start of the parsed line
format = repmat('%d ', 1, length(ttt));
format = format(1:end-1); %remove the trailing space
fprintf(fid, format, ttt); %overwrite the text in the file

fclose(fid); %close the file

your first line
1 2 3 4 5 6 7 8
5 5 5 5 5 5 5 5

请注意,只能覆盖文件中的现有字符。如果要插入新字符,则有两个重写完整文件,或者至少从要插入新字符的位置重写。