Announcement

Collapse
No announcement yet.

ASCII-Dateien einlesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ASCII-Dateien einlesen

    Ich möchte aus einer ASCII-Datei Zeilen auslesen, mit den u.g. Zeilen funktioniert dies auch prächtig. Leider werden die ü,ä,ö,ß beim Einlesen direkt in Sonderzeichen umgewandelt. Wer weiß einen Rat ?

    #include <fstream.h>
    ..
    ifstream infile;
    char buf[100];
    .
    infile.open("Dateiname");
    infile.getline(buf,sizeof(buf));
    .

  • #2
    Hallo, ich würd's als erstes mal so versuchen:

    unsigned char buf[100]
    Günther

    Comment


    • #3
      Hallo,

      eine andere Methode ist die Datei in eine StringList einzulesen. Dies hat den Vorteil, daß die weitere Verarbeitung deutlich einfacher ist, und potentielle Fehlerquellen (z.B. Überschreiten der Array-Grenzen) ausgeschlossen sind. <BR>
      Ob dieses Verfahren Geschwindigkeitsnachteile mit sich bringt, weiß ich nicht, aber eleganter ist es sicherlich!

      <pre>
      TStringList* textBuf = new TStringList();
      textBuf->LoadFromFile("c:\text.txt");
      </pre>

      Shalom, <br>
      Klau

      Comment


      • #4
        Denk mal nach. Du nennst das Problem im Titel. Du liest ASCII ein und versuchst es im ANSI-Zeichensatz von Windows darzustellen.
        Zur Zeichensatzwandlung gibt es in WIN32 Funktionen. Sie haben OEm im Namen

        Comment


        • #5
          und für alle, die bei diesem Hinweis noch nicht genau wissen, wie es geht:

          Function ASCIItoANSI(Instr : String):String;<br>
          var PtInstr : PChar;<br>
          begin<br>
          If Length(Instr)=0<br>
          then begin<br>
          ASCIItoANSI := '';<br>
          exit;<br>
          end;<br>
          PtInstr := PChar(Instr);<br>
          OEMToChar(PtInstr,PtInStr);<br>
          InStr := PtInStr;<br>
          ASCIItoANSI := Instr;<br>
          end; (* ASCIItoANSI *)<br>

          Viele Grüße
          Irmel

          Comment

          Working...
          X