Hallo Allerseits,
Ich habe in einer Delphi 7 Applikation ein BLOB aus einer Datenbank ausgelesen und in eine temporäre Datei gespeichert. Anschließend diese in ein Memo eingelesen.
| Zitat: |
...
blob.Seek(0, soFromBeginning);
with TFileStream.Create(Tempfile1, fmCreate) do
try
CopyFrom(blob, blob.Size)
finally
Free
end;
...
Form1.Memo1.Lines.LoadFromFile(tempfile1); |
...
Das ist jeweils ein normaler Text, der als ANSI-File abgespeichert wurde. Klappte tadellos.
Unter Delphi2007 erzeugt der selbe Code ein UNICODE-File, das mit Notepad z.B. tadellos lesbar ist. Mit LoadFromFile ins Memo wird nur der erste Buchstabe des Textes angezeigt.
Vermutung: Delphi2007 erzeugt wohl UNICODE, das kann aber TMemo nicht darstellen. Also: tTNTMemo gekauft. Ergebnis: Kein Unterschied.
Folgendes habe ich festgestellt: Wenn ich das Tempfile1 mit Notepad öffne und in ANSI wieder speicher, ist es ok, kann TMemo wieder lesen. Wenn ich das Tempfile1 in Notepad einfach nur speichere (also wieder UNICODE), dann kann es tTNTMemo auch komplett darstellen.
Ich vermute, Delphi2007 erzeugt ein etwas korruptes UNICODE-File.
habt Ihr eine Idee, wie ich das Problem lösen kann?
Danke!
Willmar