AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi DOS Text-Datei in Delphi 2009 einlesen
Thema durchsuchen
Ansicht
Themen-Optionen

DOS Text-Datei in Delphi 2009 einlesen

Ein Thema von TUX_der_Pinguin · begonnen am 17. Jul 2009 · letzter Beitrag vom 17. Jul 2009
Antwort Antwort
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#1

DOS Text-Datei in Delphi 2009 einlesen

  Alt 17. Jul 2009, 12:58
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;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.132 Beiträge
 
Delphi 12 Athens
 
#2

Re: DOS Text-Datei in Delphi 2009 einlesen

  Alt 17. Jul 2009, 13:22
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.

OemToChar(PAnsiChar(sRow), PWideChar(Text)); vielleicht solltest du mal Speicher für Text reservieren,
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?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.006 Beiträge
 
Delphi 12 Athens
 
#3

Re: DOS Text-Datei in Delphi 2009 einlesen

  Alt 17. Jul 2009, 13:29
Ist System.Text in D2009 nicht sowas wie File of WideChar?
Uwe Raabe
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.132 Beiträge
 
Delphi 12 Athens
 
#4

Re: DOS Text-Datei in Delphi 2009 einlesen

  Alt 17. Jul 2009, 13:33
System.Text: Nein, WideString/UnicodeString wird intern alles nach AnsiString umgebogen
(sonst wären diese Funktionen nicht mehr kompatibel zu älteren Delphi-Versionen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: DOS Text-Datei in Delphi 2009 einlesen

  Alt 17. Jul 2009, 14:31
Zitat von himitsu:
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.

OemToChar(PAnsiChar(sRow), PWideChar(Text)); vielleicht solltest du mal Speicher für Text reservieren,
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?
Du hast Recht himitsu, ich hab vergessen den Speicher zureservieren, und ja ich wollte natürlich den umgewandelten Text anzeigen.

Machmal sieht mal die einfachsten Dinge nicht mehr.

Vielen dank für eure Hilfe.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz