Import and modify " .txt" files
Mostrar comentarios más antiguos
Hi
I have some ".txt" files with this structure :
useless
useless
useless
...
data
data
...
useless
useless
useless
data
...
And I would like to have a .txt file like this :
data
data
data
...
I just know that each first line of data section begins with '1' but the length of the headerline (useless) is not fixed ! So I would like to iterate until lines begins with '1' and then keep the data.
How would you do that the easiest way ?
Thanks a lot
5 comentarios
Walter Roberson
el 26 de Nov. de 2015
How can you tell when you have reached the end of a block of data?
What is the format of each line of the data section? Is it a single numeric value per line?
johnmay
el 26 de Nov. de 2015
Thorsten
el 26 de Nov. de 2015
It would be best if you provide a sample file.
johnmay
el 26 de Nov. de 2015
johnmay
el 26 de Nov. de 2015
Respuestas (2)
Thorsten
el 26 de Nov. de 2015
Copy those lines that have four numbers:
fid = fopen('file.txt', 'r');
fid2 = fopen('file2.txt', 'w');
line = fgets(fid);
while line ~= -1
[~, count] = sscanf(line, '%f');
if count == 4
fprintf(fid2, '%s', line);
end
line = fgets(fid);
end
fclose(fid)
fclose(fid2)
6 comentarios
johnmay
el 26 de Nov. de 2015
johnmay
el 26 de Nov. de 2015
Editada: Walter Roberson
el 31 de Jul. de 2022
Thorsten
el 26 de Nov. de 2015
That's weird. It works smoothly for me. You could add a
disp(line)
disp(count)
pause
in the loop and see if the lines are properly detected.
johnmay
el 26 de Nov. de 2015
Thorsten
el 26 de Nov. de 2015
You mean reading and write to the same file? No, I don't think so.
johnmay
el 26 de Nov. de 2015
johnmay
el 26 de Nov. de 2015
0 votos
2 comentarios
Walter Roberson
el 27 de Nov. de 2015
Before the loop:
n = 2; %whatever is appropriate
fmt = repmat('%f ', 1, n);
fmt(end:end+1) = '\n'; %newline, unrelated to the variable 'n'
In the loop:
[data, count] = sscanf(line, '%f');
if count >= n
fprintf(fid2, fmt, data(1:n));
end
johnmay
el 1 de Dic. de 2015
Categorías
Más información sobre Logical en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!