![]() |
DOS Text-Datei in Delphi 2009 einlesen
Ich habe ein kleines Test-Programm gebastelt welches mir eine ASCII Datei einließt, dabei soll der Text entsprechend
umgewandelt werden so das Sonderzeichen/Umlaute korrekt dargestellt werden, jedoch habe ich Probleme mit der Anwendung von "OemToChar" unter Delphi 2007 war dies noch problemlos möglich jedoch unter Delphi 2009 macht mir die Prozedur doch arge Probleme. In dem folgenden beispiel tritt ein Stacküberlauf auf. Ich weiß nicht weiter im moment und hoffe auf die Hilfe der DPler.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var FHandle : System.Text; sRow : AnsiString; Text : String; i : byte; begin System.Assign(FHandle, 'u:\test.txt'); {$I-} Reset(FHandle); {$I+} if IoResult = 0 then begin while not EOF(FHandle) do begin //Zeile einlesen Readln(FHandle, sRow); //Zeile umwandeln OemToChar(PAnsiChar(sRow), PWideChar(Text)); //Zeile anzeigen ShowMessage(Trim(sRow)); end; System.Close(FHandle); end; end; |
Re: DOS Text-Datei in Delphi 2009 einlesen
Sag bitte nicht, daß dieser Code wirklich (etwa) so unter einer anderen Delphiversion, wie 2007, funktioniert ... das sollte dort genauso gehn, wie auch unter D2009.
Delphi-Quellcode:
vielleicht solltest du mal Speicher für Text reservieren,
OemToChar(PAnsiChar(sRow), PWideChar(Text));
denn wo soll denn sonst der String hinkopiert werden?
Delphi-Quellcode:
//Zeile umwandeln
SetLength(Text, Length(sRow)); OemToChar(PAnsiChar(sRow), PWideChar(Text)); //Zeile anzeigen ShowMessage(Trim(Text)); // wolltest du nicht Text angezeigt haben? |
Re: DOS Text-Datei in Delphi 2009 einlesen
Ist System.Text in D2009 nicht sowas wie File of WideChar?
|
Re: DOS Text-Datei in Delphi 2009 einlesen
System.Text: Nein, WideString/UnicodeString wird intern alles nach AnsiString umgebogen
(sonst wären diese Funktionen nicht mehr kompatibel zu älteren Delphi-Versionen) |
Re: DOS Text-Datei in Delphi 2009 einlesen
Zitat:
Machmal sieht mal die einfachsten Dinge nicht mehr. Vielen dank für eure Hilfe. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:45 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