Zunächst würde mich mal interessieren wo dieses seltsame "OEMtoChar" herkommt. in meiner Onlinehile finde ich da nichts.
Ich hätte Dir empfolen alle Zeichen eines Textfeldes über eine Übersetzungstabelle zu jagen und alles wäre gut. Insbesonders da einige alte DOS-Programme teilweise eine etwas eigenwillige/exotische Zeichentabelle genutzt haben.
wie sieht eigentlich die Definition von Datensatz aus?
Ich hab es übrigens in der Vergangenheit so gehalten, das ich das Einlesen über ein Array [0..x] of Char/Byte erledigt habe und darüber ein Record mit den richtigen Feld/Datendefinitionen gelegt habe:
Delphi-Quellcode:
type
tMyrecord = packed record
f1 : array [0..$4A] of byte;
name : array [$4B..$63] of char;
trenn1: byte;
rest : array [$65..$3FF];
end;
var
buffer : array [0..1023] of char;
myrecord : tMyrecord absolute buffer;
gelesen : integer;
...
fs:=tfilestream.create(.......);
gelesen:=fs.read(buffer,sizeof(buffer));
...
und dann entweder im Debugger anschauen was in dem Record steht, oder eine Printausgabe machen oder ....
Und erst wenn Du eine vernünftige Datenstruktur hast, dann erst an der Darstellung drehen, es könnte sonst sein, daß Du irgendwelche Bytes als Char interpretierst.
Gruß
K-H
Edit:
Tippfehler
Warum zum Teufel wollen hier so viele immer wieder eine Datei Byte für Byte einlesen?
Je größer die Datenmenge, die man liest, desto fixer geht alles. Ich versteh das nicht!