How can I skip some lines in a text file in order to reach a specific one which is in an undefined position?

1 view (last 30 days)
while message1 ~= message(1:size(message1,1),1:size(message1,2))
message1=fgetl(file_read); % move to the next cluster
i=i+1;
if message1 == -1
message = message1;
flag=0;
end
end
Hello everybody, I have this code line and my aim is to move the cursor down my text file unitl reaching the line stored in the variable "message". Previously on the code I had:
frewind(file_read);
for i=1:19;
message=fgetl(file_read);
end
Which worked fine because I knew the exact number of lines, but now I'm not able to move forward because, iteratively, matlab read always the same line (message1 remains the same).
How can I solve it?

Answers (1)

David Fink
David Fink on 28 Sep 2017
Use 'fgetl' and 'isequal' to check each line against the specific one.
Consider the following text file 'find.txt', and the desired line is 'THIS TEXT':
not the
text
THIS TEXT
more text
Then the following MATLAB code will move the file cursor to the beginning of the line after 'THIS TEXT'.
>> f = fopen('find.txt');
>> message = '';
>> while ~isequal(message,'THIS TEXT')
>> message = fgetl(f);
>> end

Categories

Find more on File Operations in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!