Thema: Delphi stream to widestring

Einzelnen Beitrag anzeigen

amg79

Registriert seit: 14. Dez 2010
2 Beiträge
 
#1

stream to widestring

  Alt 14. Dez 2010, 16:05
Delphi-Version: 2007
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;

Geändert von mkinzler (14. Dez 2010 um 18:54 Uhr) Grund: Delphi-Tag eingefügt
  Mit Zitat antworten Zitat