![]() |
Delphi-Version: 2007
stream to widestring
Hallo,
ich habe folgendes Problem: Ich speichere einen Text (mit UTF-8 Zeichen) in einem MemoryStream ==> Text Nach Ausgabe des Memorystreams in eine Textdatei (stream.saveToFile('test.txt')) werden dort alle Zeichen korrekt dargestellt. Ich benötige den Streaminhalt jedoch in einem widestring. Mit TReader bekomme ich den Fehler "ungültiger Eigenschaftswert". (siehe Funktion StreamToWideString) Hat jemand einen Lösungsansatz? Ziel ist es, dass alle UTF-8 Zeichen korrekt dargestellt werden.
Delphi-Quellcode:
procedure TForm1.Test;
var Text : TMemoryStream; ws : widestring; begin Text := TMemoryStream.Create; (query1.FieldByName('TestBobfeld') as TBlobField).SaveToStream(Text); ws := StreamToWideString(Text); end; function TForm1.StreamToWideString(AStream : TMemorystream): WideString; var r : TReader; begin AStream.Position := 0; r := TReader.Create(AStream,AStream.Size); ws := r.ReadWideString; result := ws; r.free end; |
AW: stream to widestring
Zunächst herzlich willkommen in der netten "Delphi-Praxis"
ich würde einfach den String manuell umwandeln. Etwa so:
Delphi-Quellcode:
ws := UTF8Decode(query1.FieldByName('TestBobfeld').Value);
|
AW: stream to widestring
Und verwende bitte in der Zukunft. Code-Tags ( im speziellen den Delphi-Tag bei Delphi/Pascal-Code)
|
AW: stream to widestring
Funktioniert, Danke! :-D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:54 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