![]() |
Suche TNT Befehl:Einlesen von Widestring[Unicode] aus Datei
Hallo,
Wie kann ich aus einer Datei ein Widestring einlesen, der dabei mit Unicode (Türkische Buchstaben) gefüllt wird? Mit Read funktioniert das ja nicht:
Delphi-Quellcode:
Für Türkische Sprache im Programm greife ich momentan ansonsten auf die TNT Units der Version 2.3.0 zurück (manuell), habe aber leider darin bisher keine Entsprechung für Read gefunden.
var
Wort:WideString; Datei:TextFile; begin SetCurrentDir ('D:/'); AssignFile(Datei, 'Datei.txt'); //Datei.txt ist im Unicode Format Reset (Datei); Read (Datei, Wort); // Wort enthält auf diese Weise ja keine türkischen Buchstaben/Unicode sondern ANSI-Zeichensalat CloseFile(Datei); Zusammengefasst: Ich suche also einen Befehl (aus den TNT Units) um aus einer Unicode Datei, ein Wort in Unicode Zeichen in einem Widestring einzulesen, um diesen anschließend innerhalb des Programms weitergeben zu können. Kann mir jemand weiter helfen? Liebe Grüße, Tillie |
Re: Suche TNT Befehl:Einlesen von Widestring[Unicode] aus Da
wie wärs mit 'ner zeichenkonvertierung? hab mal die suchbegriffe, welche du gebracht hast, in die OH eingegeben... da kommt dann so was raus...
denke, damit solltest du weiterkommen... |
Re: Suche TNT Befehl:Einlesen von Widestring[Unicode] aus Da
Delphi-Quellcode:
Für Detail schau einfach in die Implementierung dier WideStringList-Klasse von TNT
var
strList: TWidestrings; (Könnte bei TNT TTNTWideStrings heißen) begin strList := TWideStringList.Create; try strList.LoadFromFile(<Unicodedateiname>); if strList.Count > 0 then Word := strList[0]; finally strList.Free; end; end; |
Re: Suche TNT Befehl:Einlesen von Widestring[Unicode] aus Da
Liste der Anhänge anzeigen (Anzahl: 1)
Alsooo...
@ graenzgaenger Mit den Genannten konnte ich mir nicht helfen. Es ging ja um das Einlesen aus der Datei an sich und nicht ums Umwandeln von Formaten - wobei letzteres auch leider in diesem Fall nicht so einfach mit diesen Befehlen funktioniert, weil ja türkische Buchstaben nicht im ANSI Code vorhandeln sind. Daher kann ANSI Code auch nicht in Türkischen Unicode umgewandelt werden und umgekehrt. Trotzdem danke, dass du versucht hast mir zu helfen! @ Bernhard Geyer Vielen Dank! Tatsächlich war ich schon irgendwo in der Richtung am Suchen, aber hab den Dreh nicht bekommen. Dank deinem kompletten Beispiel konnte ich das sehr gut nachvollziehen! Und so hat es jetzt sogar ohne TNT Units funktioniert (!), allein mit der Unit Widestrings von Delphi. (TNT brauch ich aber trotzdem noch umd dann weiter arbeiten zu können) [Es gibt übrigens schon eine TNTWidestring Unit, wobei diese Unit insofern etwas seltsam ist, dass ich da nicht erkennen konnte, was darin an zusätzlichen Komponten enthalten ist. Ich habe den Eindruck, diese Unit, die ich hier habe, wurde eventuell noch für Vorgängerversionen von Delphi erstellt, wo es noch kein Widestring gab. Na, wie auch immer.] Noch was: Die Quelldatei muss für diese Variante als "Unicode" abgespeichert werden, nicht als "UTF-8". Das ändert zwar beispielsweise im Windows Editor nichts an der Darstellung aber in Delphi bringt dass dann sehr lustige Ergebnisse.... [So versuchte ich zunächst aus einer UTF-8 Datei Tıllıe (i ohne i.Punkt) auszulesen und was dabei rauskam siehst du im Anhang *g* - war erstmal ziemlich verwirrt, aber mit Unicode-Dateien funktionierts ja wie gesagt, also no problem] Nochmal vielen vielen Dank!!!! Frohes Schaffen & Bis bald :zwinker: :hi: |
Re: Suche TNT Befehl:Einlesen von Widestring[Unicode] aus Da
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:59 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