Entwickler-Ecke

Dateizugriff - Datei lesen schlägt fehl


skriiva - Sa 17.04.10 19:31
Titel: Datei lesen schlägt fehl
Hallo zusammen !

Ich greife auf eine Datei des Typ File of char zu. Diese wird erkannt jedoch kommen beim Lesen die Probleme. Die ausgegeben Zeichen sind einfach nur Quadrate. Ich weiß leider nicht was das für Ursachen haben könnte. In der Datei stehen 3 Wörter.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
CharFile = File of char;

var data:CharFile;

procedure ReadData(var text:Stringvar source:CharFile);
var dummy:Char;   
  begin
    reset(source);
    text:='';

    while not EOF(source) do
     begin
      read(source, dummy);
      text:=text + dummy;
     end;
  end;


Gausi - Sa 17.04.10 19:57

Verwendest du Delphi 2009 oder 2010? Da ist ein Char nämlich zwei Byte groß. Wenn das eine "normale" Ansii-Textdatei ist, werden dadurch dann je zwei Zeichen zu einem (meist) ostasiatischen Zeichen verwurstet, das dann als Quadrat angezeigt wird, wenn die Schriften nicht installiert sind.

Arbeite lieber mit Streams. Die sind am Anfang zwar etwas komplizierter, aber weitaus flexibler. ;-)

Ob hier die Ersetzung Char durch Ansichar was bringt, weiß ich nicht. Kann aber auch gut sein.


skriiva - Sa 17.04.10 20:21

Wow Super ! Genau das war das Problem. Ich habe mich informiert und Char durch AnsiChar ersetzt und die Typcasting mit AnsiChar(). Danke nochmal !