Hallo Scrutor,
bei Textdateien gibt es zwei Basis-Formate: Fixed-Field und Comma-Separated. Die Bezeichnungen sagen aus, dass im ersten Fall die einzelnen Felder über ihren Offset und im letzteren Fall durch Abzählen der Trennzeichen lokalisiert werden. Deine Textdaten gehören in die erste Kategorie.
Für deine beiden Datensatztypen kommt man leicht zu folgenden Strukturen:
Delphi-Quellcode:
type
TAuftragDaten = record
Dum1 : array[0..7]of char; //Dummy
ProgNr : array[0..7]of char; //Programmnummer
ZeichNr : array[0..7]of char; //Zeichnungsnummer
LineNr : array[0..7]of char; //Lineelement
IdBohr : array[0..7]of char; //Ident Bohren
IdVorr : array[0..7]of char; //Ident Vorrichtung
Dum2 : array[0..7]of char; //Dummy
AVO : array[0..7]of char; //AVO
Mach : array[0..7]of char; //Maschine
Durchm : array[0..7]of char; //Raddurchmesser
AusWink : array[0..7]of char; //Austrittswinkel
AnzScha : array[0..7]of char; //Anzahl Schaufeln
SchaHohe: array[0..7]of char; //Schaufelhöhe
end;
TAuftrag2002 = record
Nr : array[0..8]of char; //Auftragsnummer
Spec: TAuftragDaten;
end;
TAuftrag2004 = record
Nr : array[0..9]of char; //Auftragsnummer
Spec: TAuftragDaten;
end;
Einlesen kannst du diese Daten wahlweise über die alten Pascal Standardroutinen ReadLn (ohne vorherige Kenntnis der Satzlänge) und BlockRead (mit vorheriger Kenntnis der Satzlänge) oder über einen FileStream.
Wenn nur diese beiden Datensatztypen existieren, dann kannst du auch einfach den größeren Typ verwenden und beim Einlesen die erste Stelle mit einem Leerzeichen oder einer Null initialisieren, wenn die kurzen Sätze verarbeitet werden.
Grüße vom marabu