Blockread konvertirungsprobleme von D5 nach D2010
21. Feb 2011, 17:42
Hallo wer kann mir helfen.
Ich habe ein Problem mit chinesischen Schriftzeichen bei der Umstellung auf D2010 !
Habe bisher mit D5 TXT Dateien problemlos eingelesen.
(ich lese immer 1 Zeichen ein um Feldtrenner ';' und Satzende 0A0D zu erkennen.)
var
MFELD1 : array [0..0] of char;
mtest0,mtest1,mtest2:char;
MAFELD1:String;
MDatei: File;
Mk: File;
nread:integer;
.
.
procedure Lesen;
begin
MAFELD1:= '';
while not eof(mk) do begin
blockread(MK,MFeld1,sizeof(MFeld1),nread);
if (MFeld1=MTest1) then begin
blockread(MK,MFeld1,sizeof(MFeld1),nread); // einlesen #10
break;
end;
if (MFeld1<>MTest0) then begin
mafeld1:=mafeld1+MFeld1;
end;
if (MFeld1=MTest0) then break;
end;
end;
procedure TForm444.Button1Click(Sender: TObject);
begin
MTEST0:= ';';
MTEST1:= CHR(13);
MTEST2:= CHR(10);
fname:='J:\Ponn\Auft\Data\DEG\datanorm.001';
assignfile(MK,fname);
reset(MK,1);
lesen();
if copy(MAFELD1,1,1)='V' then begin
.
.
Mit der Umstellung auf D2010 ist der Vergleich von char und Array [0..0] of char nicht mehr möglich. Also habe ich die Variable MTest0,MTest1,MTest2 welche ich mit dem Array vergleiche ebenfalls als
Array[0..0] definiert.
Jedoch schon bei der Zuweisung MTEST0:=';' hat die Variable den Wert '䜰' ... auch alle Zeichen die mit Blockread eingelesen werden sind Chinesische Schriftzeichen.
Was mache ich falsch ?
|