![]() |
Stream to String / String to Stream ? möglich wie?
Hallo
Problemstellung: Bisher: Write : Rich.Edit.Text --> Stringvariable --> File Read : File --> Stringvariable --> Rich.Edit.Text Nun wollte ich die RxRichEdit - Komponente einsetzen um auch kleine Graphiken im RichEdit-Fenster mittels Drag&Drop einzufügen bzw. anzuzeigen. Leider ist bis hierher kein Problem, aber... jetzt stellt sich ein Problem daß ich damit ich Rückwärts-Kompatibel bleibe, den Inhalt des RxRichText-Fensters auch weiterhin auf die bisherige Stringvariable abbilden müsste. Ich dachte mit .LoadToStream / SaveToStream müsste dies möglich sein. ? Auch trotz Intensiv-Studium verschiedenster Foren und der Delhi-Hilfe bin ich nicht in der Lage Stream --> String --> Stream zu lösen. hat jemand einen Tipp dazu? Danke im Vorraus |
Moin Schlingel,
eine Variable von Typ String in einen Stream zu schreiben, bzw. daraus zu lesen geht so:
Delphi-Quellcode:
Da der Buffer nicht typisiert ist, ist die Angabe von [1] wichtig. Dies ist die Stelle ab der der String geschrieben wird, bzw. an der in den String eingelesen wird.
var
sBuffer : string; fsIN : TFileStream; fsOUT : TFileStream; begin fsIN := TFileStream.Create('Pfad der zu lesenden Datei',fmOpenRead); fsOUT := TFileStream.Create('Pfad der zu schreibenden Datei',fmOpenWrite or fmCreate); try // Platz reservieren sBuffer := StringOfChar(#00,fsIN.Size); fsIN.Read(sBuffer[1],length(sBuffer)); fsOUT.Write(sBuffer[1],length(sBuffer)); finally FreeAndNil(fsIN); FreeAndNil(fsOUT); end; end; Man kann auch andere Werte angeben, um z.B. nur bestimmte Teile zu schreiben, bzw. an bestimmte Stellen einzulesen. |
Stream-Problem ..
Hallo Chris
damke für deine message... leider lösst deine Variante nicht ganz mein Problem. Ich würde eine Stream to String / String to Stream Lösung benötigen, die ohne Umweg über ein File zu bewerkstelligen wäre. mfg Schlingel |
Re: Stream-Problem ..
Hallo Schlingel,
Zitat:
das von Chris beschriebene funktioniert damit genau so. Gruß Jan |
Moin Zusammen,
oder anders gesagt: Welchen Stream man benutzt ist egal. Einen Tip hab' ich aber noch zur Eigenschaft Text von RichEdit usw. Der direkte Zugriff darauf ist sehr langsam. Man kommt erheblich besser weg, wenn man den String, den man TEXT zuweisen will in einen MemoryStream schreibt, und dann aus diesem mittels LoadFromStream liest. Beispiel: ca. 3,8MB grosse Textdatei - Zuweisung an Text: Manuell abgebrochen nach 4 Minuten. - Umweg über Stream: In ca. 3 Sekunden geladen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:48 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