explanation for script containing while loop
古いコメントを表示
I was given a script for reading data from a specific file, and although the script works, I don't understand one section of it, it reads as follows:
fid = fopen(Folder);% open file to read
fseek(fid,0,-1);% set read position to beginning of file,
Linechk = strcmp(fgetl(fid),'*END*');% read in line 1
while Linechk == 0
Linechk = strcmp(fgetl(fid),'*END*');% go through lines until '*END*'
end
The main aim here is to find the line where the string END appears, following the appearance of END the data is stored. The question I have is that Linechk is equal to 0 initially (i.e. before the loop), then in following the loop it is equal to 1. I can't understand why it returns 1, surely the while loop only repeats when Linechk is equal to 0 therefore how does the condition remain true when it equals 1?
Entire code:
fid = fopen(Folder);% open file to read
fseek(fid,0,-1);% set read position to beginning of file,
% fseek(fileID, offset, origin).
Linechk = strcmp(fgetl(fid),'*END*');% read in line 1
while Linechk == 0
Linechk = strcmp(fgetl(fid),'*END*');% go through lines until '*END*'
end
n = 1;
while 1;
tline = fgetl(fid);% read in line
if ~ischar(tline), break, end;% if end of file, break and finish
data(n,:) = sscanf(tline,'%f');% put numbers in a matrix (in columns)
n = n+1;
end
fclose(fid);% close file
採用された回答
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!