Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Textfile encoding


Torsten Richter - Fr 11.12.09 13:32
Titel: Textfile encoding
Hallo,

D2009
Meine Frage ist die Gleiche wie Textfile encoding von Format Windows 1252 nach DOS 850 [http://www.delphi-forum.de/viewtopic.php?t=71406&start=0&postorder=asc&highlight=textfile+encoding+format+windows+1252+dos+850] vom 27.03.07 11:12, (nur dass mir die Antwort nicht gefällt)

Ich versuche eine ASCII-Textdatei einzulesen, bekomme aber Umlaute nicht richtig angezeigt.

das Ganze mache ich mit
Memo1.Lines.LoadFromFile(MeineAteDosDatei, TEncoding.ASCII);

ich kann beim Encoding einstellen was ich will - die Resultate sind durchaus unterschiedlich, aber Umlaute sind nicht korrekt.

Was stimmt hier nich ?

tia
Torsten

Moderiert von user profile iconChristian S.: Verlinkung eingefügt


rn22 - Fr 08.10.10 21:11

Das würde mich auch interessieren - hab nämlich das gleiche Problem.


jaenicke - Fr 08.10.10 21:12

Dafür gibt es OemTochar und CharToOem. ;-)


rn22 - Fr 08.10.10 21:25

Aha.

Ich hab das in der Onlinehilfe nachgesehen. :?:
Wie würde man es denn konkret machen, wenn man z.B. die Datei test.txt ins MEmo1 laden wil?

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Nanu, ich hab das gerade ausprobiert. Wenn man nur Test in ein Memo läd, geht es.

Aber wenn ich es erst in ein TStringList lade, gibt es das Umlaut-Problem.


theo - Fr 08.10.10 21:34

Wenn Du das Charset kennst, dann geht das ohne Probleme mit:

Memo1.Lines.LoadFromFile('C:\KLC\tschech.ini', TEncoding.GetEncoding(28592)); (laden als ISO 8859-2)

Den Parameter kannst hier nachschlagen: http://msdn.microsoft.com/en-us/library/dd317756(VS.85).aspx


rn22 - Fr 08.10.10 23:14

Ich glaub, langsam komme ich hinter das Problem:
Meine Textdateien sind von einer englisch-Sprachigen Software erstellt. Die codiert offenbar anders.



user profile icontheo hat folgendes geschrieben Zum zitierten Posting springen:
Wenn Du das Charset kennst, dann geht das ohne Probleme mit:

Memo1.Lines.LoadFromFile('C:KLCtschech.ini', TEncoding.GetEncoding(28592)); (laden als ISO 8859-2)



Das sieht ja schon vielversprechend aus. Aber mit meinem Delphi5 scheint es nicht zu gehen. TEncoding ist normalerweise in SysUtils - oder? Dort hab ich nachgeschaut und es nicht gefunden.

Gibt es einen anderen Weg oder kann man das "nachrüsten"?


jaenicke - Sa 09.10.10 05:12

Diese Encoding-Sachen gibt es erst ab Delphi 2009 oder 2010. ;-)

Vorher musst du die geladene Datei selber umwandeln.