Import and modify " .txt" files
Ältere Kommentare anzeigen
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 Kommentare
Walter Roberson
am 26 Nov. 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
am 26 Nov. 2015
Thorsten
am 26 Nov. 2015
It would be best if you provide a sample file.
johnmay
am 26 Nov. 2015
johnmay
am 26 Nov. 2015
Antworten (2)
Thorsten
am 26 Nov. 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 Kommentare
johnmay
am 26 Nov. 2015
johnmay
am 26 Nov. 2015
Bearbeitet: Walter Roberson
am 31 Jul. 2022
Thorsten
am 26 Nov. 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
am 26 Nov. 2015
Thorsten
am 26 Nov. 2015
You mean reading and write to the same file? No, I don't think so.
johnmay
am 26 Nov. 2015
johnmay
am 26 Nov. 2015
0 Stimmen
2 Kommentare
Walter Roberson
am 27 Nov. 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
am 1 Dez. 2015
Kategorien
Mehr zu Logical finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!