![]() |
Textdatei byteweise in MemoryStream speichern - Problem
Hallo,
ich möchte eine Textdatei byteweise auslesen und dabei byteweise in einen Memorystream speichern. Hier mein Beispielcode (um den kurz und übersichtlich zu halten, habe ich die Schutzblöcke mal weggelassen).
Code:
Leider bleibt mein Memofenster leer. Was mach' ich nur falsch?
procedure makestream(datei:string);
var fl :file of char; P : char; len,fs : longint; stream : TMemoryStream; begin Stream := TMemoryStream.Create; assignfile(fl,datei); reset(fl); fs := filesize(fl); Len := fs; Stream.Write(Len, SizeOf(Len)); while not eof(fl) do begin read(fl,p); // Len := Length(p); // Stream.Write(len, sizeof(p)); Stream.Write(p,sizeof(p)); end; form1.Memo1.Lines.LoadFromStream(stream); stream.Free; closefile(fl); end; Wenn diese kleine Procedure mal ordentlich läuft, möchte ich nämlich jedes einzelne Char-Zeichen bearbeiten (codieren), bevor ich es in den Stream schreibe. Kann vielleicht jemand den Fehler korrigieren? |
AW: Textdatei byteweise in MemoryStream speichern - Problem
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 |
AW: Textdatei byteweise in MemoryStream speichern - Problem
Mann - das ging ja schnell (und hat sogar geklappt!) Vielen Dank dafür.:-D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz