Comparing words in text file line by line
1 次查看(过去 30 天)
显示 更早的评论
采纳的回答
Adam Danz
2019-8-12
编辑:Adam Danz
2019-8-12
"I got a text file with only one word in each line. How can I open and compare each word from this file with required word in a loop?"
It's probably best to read the entire file rather than line-by-line. Then you compare each line with your required word. Here's a demo that reads a file named "data.txt" and searches for the requiredWord "sunshine".
% Read in the entire file, keep columnar arrangement
t = strsplit(fileread('data.txt'))';
requiredWord = 'sunshine';
[hit, lineNumber] = ismember(requiredWord, t);
% If you don't want case sensitivity:
% hit = ismember(lower(requiredWord), lower(t));
If you must read line-by-line, use fgetl() in a while-loop that loops through the file line by line. This demo stops either when the word was found or the last line was read.
% Read line by line
fid = fopen('data.txt');
tline = fgetl(fid);
hit = false;
c = 0; %counter
while ischar(tline) && ~hit
c = c+1; % if you want the row number
hit = strcmp(requiredWord, tline); % use strcmpi() for case insensitivity
tline = fgetl(fid);
end
fclose(fid);
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Text Data Preparation 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!