Replace specific line in a text file
38 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Islam Elnady
el 24 de Oct. de 2019
Editada: Islam Elnady
el 26 de Oct. de 2019
Hi everyone,
I have a text file (for example: data.dat) as shown below, with a number of lines.
data.dat
@motion parameters
speed= 22,30,60
range= 600
rotation= 50
@controls
act= 2,3,4,5
I want to read it and replace the line that comes right after the line starting with a specfic keyword e.g. "@controls" . In this case, the line to be replaced is this one
act= 2,3,4,5
and it should be changed in a loop. For an instant, for example, it would change to:
act= 1,0,8,-2
I'd appreciate your help. Thanks in advance.
0 comentarios
Respuesta aceptada
Shubham Gupta
el 25 de Oct. de 2019
One of the way could be:
fid = fopen('data.dat','r'); % Open File to read
replaceline = 'act= 1,0,8,-2'; % Line to replace
i = 1;
tline = 's';
A = {[]};
while ischar(tline)
tline = fgetl(fid);
if ~isempty(strfind(tline,'@controls')) % find '@controls'
A{i}=tline;
A{i+1} = replaceline; % replace line
tline = fgetl(fid);
i = i+1;
else
A{i}=tline;
end
i = i+1;
end
fclose(fid);
fid2=fopen('data.dat','w'); % Open file to write
for i=1:length(A)-1
fprintf(fid2,['%s',char([13,10])],A{i});
end
fclose(fid2);
Let me know if you have doubts !
2 comentarios
Islam Elnady
el 26 de Oct. de 2019
Editada: Islam Elnady
el 26 de Oct. de 2019
Islam Elnady
el 26 de Oct. de 2019
Editada: Islam Elnady
el 26 de Oct. de 2019
Más respuestas (0)
Ver también
Categorías
Más información sobre Text Files en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!