How to find the lines of two words repeated many times in a .txt file
10 ビュー (過去 30 日間)
古いコメントを表示
Abdelhadi To'ma
2014 年 10 月 23 日
コメント済み: Abdelhadi To'ma
2014 年 10 月 23 日
I'm trying to find a two words (DATA & END ) repeated many times in a .txt file how I can get their positions or in any lines they are exist because I want to bring the numbers which are between these two words
this is a part of the file
-- Coefficient of friction (for calculation of temperature) -- SchmierTyp 0:Oil 1:Grease 2:Dry :TABLE FUNCTION ReibKoef INPUT X SchmierTyp TREAT
DATA
1 2 3
0,01 0,02 0,03
END
-- Coefficient of friction (for calculation of temperature) -- SchmierTyp 0:Oil 1:Grease 2:Dry :TABLE FUNCTION ReibKoef INPUT X SchmierTyp TREAT
DATA
1 2 3
0,01 0,02 0,03
END
and I'm trying to do this by typing
haystack = fopen('h1.dat','r');
needle = 'DATA';
line = 0;
found = false;
while ~feof(haystack)
tline = fgetl(haystack);
line = line + 1;
if ischar(tline) && ~isempty(strfind(tline, needle))
found = true;
break;
end
end
if ~found
line = NaN;
end
Thanks in advance
2 件のコメント
Guillaume
2014 年 10 月 23 日
At first glance, your code looks correct. It will find the first line that contains 'DATA'. So what exactly is the problem you are having?
採用された回答
Michael Haderlein
2014 年 10 月 23 日
You just have to extend your if-structure:
if ischar(tline)
if found
if strcmpi(tline,'END')
found=false;
else
mydata(end+1,:)=str2num(tline);
end
else
if strcmpi(tline,needle)
found=true;
end
end
end
I cannot test this code right now, but it should at least serve well as starting point. Of course, you have to initialize mydata at the beginning (mydata=[];).
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Physical Units についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!