Borrar filtros
Borrar filtros

problem to edit a text file

1 visualización (últimos 30 días)
sareh
sareh el 20 de Mayo de 2014
Comentada: sareh el 21 de Mayo de 2014
Dear all,
I am having some difficulties to edit my text file. I have an input file which I need to modify certain lines (11844 lines) in each iteration. The input file is a mixture of text, numbers. the numbers are the coordinates of my object in 3D space. So I open the file and rewrite the new coordinates but when it writes it down it pushes the have of previous coordinates and just replace half of it with my new data. So at the end I have correctly started place for my new points but then at the end I see some residue of the previous coordinates.
find_line = '*Node';
InputFID=fopen([file,'.inp'],'r+');
j = 0; count=0;
while j==0
count = count+1;
tline = fgetl(InputFID);
j = strcmp(tline, find_line);
end
n = 1;
format = ' %5.0f, %.4f, %.4f, %.4f \n';
fseek(InputFID,0, 'cof');
for n = 1:size(newdata,1)
m = [newdata(n,1), newdata(n,2), newdata(n,3), newdata(n,4)];
fprintf(InputFID,format,m);
end
fclose(InputFID);
I will appreciate any idea, Thanks Sareh
  3 comentarios
per isakson
per isakson el 20 de Mayo de 2014
My first idea is
str = fileread( [file,'.inp'] );
str = regexprep( str, ...
and hope there are keywords in the file to locate the coordinates of interest
sareh
sareh el 21 de Mayo de 2014
Dear all,
Thank you very much, I made it work by:
A = regexp( fileread('data.txt'), '\n', 'split');
then copy and paste the rows I wanted to change in this array then wrote it out:
fid = fopen('data.txt', 'w');
for i = 1:size(A1,2)
fprintf(fid, '%s\n', A{i});
end
fclose(fid);
Thank you very much, My best regards, Sareh

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Text Data Preparation en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by