Hallo,
ich verzweifle gerade etwas daran, in einen TMemoryStream zu schreiben.
Konkret geht es darum: Ich möchte RTF-Text persistent speichern und dann nach dem Programmende wieder einlesen. Dies soll aber nicht mit dem normalen RTF-Format passieren, sondern es soll der "Quelltext" der RTF-Datei in eine Textdatei geschrieben werden.
Den Text zu speichern habe ich hinbekommen (leider nur über den Umweg eines Stringliste, was den Nachteil hat, dass am Ende immer eine leere Zeile steht, die ich manuell entfernen muss).
Das Wiedereinlesen habe ich nun so versucht:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| function StringToMemoryStream(str: String): TMemoryStream; var stream: TMemoryStream; begin stream := TMemoryStream.Create; stream.Write(Pointer(str)^, Length(str)); stream.Position := 0; result := stream; end; |
Wenn ich nun aber den Ergebnis-Stream mit RichEdit.LoadFromStream einlese, kommt nur "Murks" heraus, aber kein RichText. Er zeigt mit stückchenweise den String "str" an.
Und dann habe ich noch ein allgemeines Problem mit den Streams. Prinzipiell soll man ja ein try-finally-Konstrukt dafür nutzen. Ich habe aber noch nicht ganz verstanden warum.
Und ich wüsste auch nicht, wie ich das hier machen sollte, denn, wenn ich den Stream in "finally" wieder freigebe, ist ja mein result flöten, oder?
Ich hoffe, mir kann da jemand weiterhelfen.
Danke!
Ciao LHUser
Moderiert von
Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Di 05.10.2010 um 23:34