I need to efficiently skip lines in text file
18 views (last 30 days)
Show older comments
I'm reading in a formatted text data file and pulling data from it. Every so often there is a break in the data and its 4 lines long. I'm reading the lines with "fgetl" and right now to skip those lines I just use
for i = 1:4
line = fgetl(fileID);
end
This seems terribly inefficient and brute force. Is there a better way?
--Clarification The skipped lines have information in them, just information I don't use. I'm also trying to avoid saving any information temporarily for the skipped lines.
1 Comment
Accepted Answer
Walter Roberson
on 7 Aug 2015
Repeated fgetl() is going to be more efficient than what the others have shown here when you are working with text files. fgetl() is a low-level routine that talks directly to the I/O stream used by the operating system libraries.
If you were working with non-text files (that is you did not use the 't' flag when you opened them) and if you knew exactly how many bytes the 4 lines occupied in total including the line delimiters, then you could fseek() forward that many bytes.
0 Comments
More Answers (1)
Azzi Abdelmalek
on 7 Aug 2015
Edited: Azzi Abdelmalek
on 7 Aug 2015
You can use textscan
fid=fopen('fic.txt');
str=textscan(fid,'%s','HeaderLines',5,'delimiter','\r\n');
fclose(fid)
0 Comments
See Also
Categories
Find more on Low-Level File I/O in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!