Einzelnen Beitrag anzeigen

Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Textdatei byteweise in MemoryStream speichern - Problem

  Alt 27. Dez 2012, 00:03
Ich nehme an es handelt sich um "Übung" im Zusammenhang mit Streams, daher nur die korrigierte Version und keine Hinweise auf andere Optionen.

Delphi-Quellcode:
procedure makestream(datei: string);
var
  fl: file of AnsiChar;
  P: AnsiChar;
  len, fs: longint;
  stream: TMemoryStream;
begin
  stream := TMemoryStream.Create;
  try
    assignfile(fl, datei);
    reset(fl);
    fs := filesize(fl);

    len := fs;
    stream.Write(len, SizeOf(len));

    while not eof(fl) do
    begin
      read(fl, P);
      stream.Write(P, SizeOf(P));
    end;
    stream.Position := 0; // Streamposition wieder auf Anfang setzen
    stream.Read(len, SizeOf(len)); // Länge lesen, danach erst beginnt der Text
    Form1.Memo1.Lines.LoadFromStream(stream);
    closefile(fl);

  finally
    stream.Free;
  end;

end
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat