matlabでのテキストファイルの書き換えを行いたいのですが,改行文字の検出ができません.(C言語では作れますが,matlabで作りたいのです.)
例として以下のファイル(read.txt)の書き換えの方法を教えてください.
start
0
1
2
abcdef
0
1
2
3
4
xyz
end
上のファイルにおいて,abcdef以下の01234を他のファイルに書き換えたく,以下のスクリプトを作成しました.
Path1='read.txt';
Path2='write.txt';
judge=0;
Fid1=fopen(Path1,'rt');
Fid2=fopen(Path2,'wt');
while feof(Fid1)==0
Line=fgets(Fid1);
if Line=='\n'
judge=0;
elseif judge==1
fprintf(Fid2,'%s',Line);
end
if strcmp(Line,'abcdef\n')==1
judge=1;
end
end
fclose(Fid1);
fclose(Fid2);
end
ここで,知りたいのは「Line=='\n'」と「strcmp(Line,'abcdef\n')==1」の条件文がうまく働いてない理由です.これを実行すると何も書かれてないファイルが作成されます.
strncmp(Line,'abcdef',6)とするとこちらはうまく認識しますが,改行文字のみの行の検出はどのようにして行えばよいのでしょうか.
お礼
改行コード"char(10)"を使って,改行文字を認識させることができました.あと,C言語だとfgetsで1行をchar型の配列(buffer[])に格納した後, (buffer[0]=='\n')で比較できます. ありがとうございました.