テキストファイルで指定した行を読み込むには?

解決


03  2004-08-05 08:24:58  No: 10242

テキストファイルで指定した行を読み込むにはどのようにすればよいでしょうか?
Readlnに読み込みたい行を指定できるような関数はあるでしょうか?
ご教授お願いします。


jok  2004-08-05 08:30:20  No: 10243

> Readlnに読み込みたい行を指定できるような関数はあるでしょうか?

ないと思います。読み飛ばしてください。


03  2004-08-05 08:55:15  No: 10244

jokさん、有難うございました。
ではその様な機能を何とかして実現させるためにはどのような方法があるでしょうか?
ちなみに、そのテキストファイルは何千行とあり、かなりサイズが大きいです。
もしあれば教えていただけませんでしょうか?


忙しい暇人  2004-08-05 11:54:28  No: 10245

僕も詳しくは知りませんが、、、
こんなのでいいんじゃないかと、、、

procedure TForm1.Button1Click(Sender: TObject);
 var
   txt : TextFile;
   i   : integer ;    //-- とりあえず i 
   L   : integer ;    //-- 欲しい行の番号?
   z   : string  ;    //-- テキストを格納しておく
begin
  i := 0;
  L := 12345;         //--欲しい行を入れとく

  AssignFile(txt,'C:\test.txt');
  Reset(txt);

  while not Eof(txt) do
  begin
    Readln(txt,z);
    if i = L then ShowMessage(z);
    i := i + 1;
  end;
end;

一応、91519行のテキストファイルで成功しましたが、、
ついでに、L って1行目は 0 でお願いします...


忙しい暇人  2004-08-05 11:55:57  No: 10246

CloseFile(txt);
を発行し忘れました。


LupinⅢ  URL  2004-08-05 21:08:15  No: 10247

TStringListを使用してはどうでしょう?
var
   SL:TStringList;
begin
   SL := TStringList.Create;
   try
      SL.LoadFromFile('ABC.txt');
      ShowMessage(SL[100]);
   finally
      SL.Free;
   end;
end;


03  2004-08-05 23:48:59  No: 10248

返信遅くなりました。うまく読み込めました。
忙しい暇人さん、有難うございました。
ただ、この読み込みを何回も繰り返したいので、もう少し高速に処理させたいのですが・・・
無理な相談でしょうか?


03  2004-08-06 00:00:35  No: 10249

すみません。返信をのろのろ書いていたため、LupinⅢさんの書き込みに気付くのが遅くなってしまいました。
LupinⅢさんの方法だと見事に早く読み込めました。
有難うございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加