Thema: Delphi Streams: welche BufSize?

Einzelnen Beitrag anzeigen

Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#11

Re: Streams: welche BufSize?

  Alt 2. Dez 2006, 14:18
man kann allerdings so einen TWriter auch zum blockorientierten Schreiben und Lesen von Dateien benutzen.
Und das geht um Welten schneller als TFilestream ohne TWriter und TReader.
Mal ein Beispiel wo records in ein File geschrieben werden

Delphi-Quellcode:
procedure Tzigzag.SaveZZToFile(const FileName : String);
var
  schenkel : TPSchenkel;
  stream : TFileStream;
  writer : TWriter;
  i : Integer;
  size : Integer;
begin
  if Filename = 'then exit;

  size := SizeOf(TSchenkel);
  stream := TFileStream.Create(FileName,fmCreate or fmShareDenyWrite);
  try
    writer := TWriter.Create(stream,BufferSize);
    try

      for i := 0 to flist.Count - 1 do
      begin
        schenkel := Flist[i];
        writer.Write(schenkel^, size);
      end;


    finally
      writer.Free;
    end;
  finally
    stream.Free;
  end;


end; // SaveToFile (Tzigzag)
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat