ファイルを読み込んで、最初の6文字が、「ABCDEF」であったときに、ある動作をさせたいです。
while not Eof( f ) do
begin
Readln( f, cc );
end;
とすると、なぜかファイルの最後に行ってしまい、次の行には行ってくれません。初心者な質問ですが、お願いします
while でループさせれば最後まで行ってしまうのは当たり前です。
Readln( f, cc );
if Copy(cc, 1, 8) = 'ABCDEF' then
...
具体的には、C言語で
do{
}while(fgets(str,100,fp) != NULL);
のようなことがしたいです。テキストファイルに、たとえば、
-----------
point 12 13 14
point 15 46 32
:
:
-----------
とたくさん書いてあって、pointを読みこんだときに、ファイル内のx,y,zを取得したいんです。C言語の意識があるからか、readをgetcと同じ意識で使っている気がするんですが・・・
C言語はよく知らないのですが、
while not Eof( f ) do
begin
Readln( f, cc );
if Copy(cc, 1, 5) = 'point' then
Begin
//やりたい処理
End;
end;
で1行ずつ移動しながら処理できると思いますが。
あ、すみません!delphiの言語、どうのという以前に読み込むファイルが変な形をしていました!ご親切にお答えくださって大変恐縮します!
ちなみに、一見すると普通のファイル
---------------------
point 1 2 3
point 4 5 6
:
:
-------------------------
なのに、最初の一行を読み込んだだけでEof(f)がTrueを返すという奇妙なファイルです。これを非常にシンプルに処理する方法がございましたら、お教えいただけないでしょうか?ファイルの形が奇妙だ、と気づいたので処理の仕方は予測がつきますが、より簡易な方法がありましたら、で結構ですので。
あ、嘘です。違います。混乱してすみません、上の発言はなかったことに・・・。もう少し整理してから、またたぶん質問をすると思います。とりあえず、解決で。
編集 削除解決!
編集 削除