Einzelnen Beitrag anzeigen

Scrutor

Registriert seit: 23. Sep 2006
Ort: Moers
37 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Array mit verschiedenen Records

  Alt 4. Jul 2007, 14:10
hui, danke für die umfangreiche Info Der_Unwissende.
Nun weiss ich zumindest schonmal, dass die Lösung über Records in meinem Fall nicht (nie) funktionieren kann.

Ich werde mich dann nun mal den Klassen und Objecten widmen.


@christian.noeding
das wäre eine möglichkeit, aber ist für meinen Fall auch leider nicht brauchbar. trotzdem vielen dank.


ich beschreibe mal mein problem, vielleicht hat ja einer eine gute lösung:
Also, ich hab eine Text-Datei in der Datensätze gespeichert sind.
Diese muss ich laden.
Zeile 1 hat zum Beispiel 14 Datensätze, die bis auf den ersten Datensatz alle 8 Zeichen lang sind. Der erste Datensatz hat 10 Zeichen.
Nun kann es aber sein, dass bei einem alten Datenformat der erste Datensatz nur 9 Zeichen lang ist.
Also prüfe ich das Datei-Erstellungsdatum und entscheide danach, welchen Record ich benutze, um den Datensatz der ersten Zeile korrekt zu laden.

Datei von 2002 sieht so aus:
Delphi-Quellcode:
type
  TDaten_Zeile_1_altesFormat = record
    Auftr : array[0..8]of char; //Auftragsnummer
    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
    LineFeed: array[0..1]of char;
  end;
Datei von 2004 sieht so aus:
Delphi-Quellcode:
type
  TDaten_Zeile_1_neuesFormat = record
    Auftr : array[0..9]of char; //Auftragsnummer
    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
    LineFeed: array[0..1]of char;
  end;
so, davon gibt es also mehrere unterschiedliche Datensätze zu unterschiedlichen Datumsangaben.

Ich hab 5 Zeilen-Records und für jeden Zeilen Record kann es sein, dass ich 6 verschiedene Zeit-Records erstellen muss.
(Hab nämlich noch nicht alle Format unterschiede mir angeschaut)

ich hoffe jemand versteht mein Porblem wenigstens ansatzweise
90% aller Computerprobleme sitzen vor dem Bildschirm !
  Mit Zitat antworten Zitat