Autor Beitrag
skriiva
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Sa 17.04.10 19:31 
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.

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8549
Erhaltene Danke: 478

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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.

_________________
We are, we were and will not be.
skriiva Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: 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 !