FDELPHI 6 /RE:35920 RE:速いファイル入力  こんにちは、凛 さん、十兵衛さん お陰様で、なんとなくわかったような気がします。 nifty:FDELPHI/MES/6/33644 の、ひの さんの発言を参考にして(というか、ほ とんどそのまま)、実際に以下のようなルーチンを組んで試してみました。 const BufSize = 32768; type TBuf = array[0..BufSize-1] of byte; var F1 : File; Buf1 : ^TBuf; NumRead1 : integer; i : integer; begin Result := False; try New(Buf1) AssignFile(F1,name1); Reset(F1,1); while not EOF(F1) do begin Application.ProcessMessages; BlockRead(F1, Buf1^, BufSize, NumRead1); for i := 0 to NumRead1 - 1 do begin // ここで Buf1^[i] を使っていろいろ処理する end; end; Result := True; Finally Dispose(Buf1); CloseFile(F1); end; end; const BufSize = 32768; type TBuf = array[0..BufSize-1] of byte; var F1 : TFileStream; Buf1 : ^TBuf; NumRead1 : integer; i : integer; begin Result := False; try New(Buf1); F1 := TFileStream.Create(name1,fmOpenRead); while F1.Position < F1.Size-1 do begin // ほんとに -1 でいいの? Application.ProcessMessages; NumRead1 := F1.Read(Buf1^, BufSize); for i := 0 to NumRead1 - 1 do begin // ここで Buf1^[i] を使っていろいろ処理する end; end; Result := True; Finally Dispose(Buf1); F1.Destroy; end; end; 要するに、TFleStream は自動的にバッファ読み込みをしてくれるわけではないか ら、速い入力を目指すのであれば、自前でバッファを作ってやらなければいけな い、ということですね。また、nifty:FDELPHI/MES/15/49 より、TFileStream で も BlockRead でも速度的にはほとんど変わらないという事ですし、実験でもその ような結果がでましたので、自分の感性にあった方を使ってみたいと思います。 どうもありがとうございました。                                 としき