Einzelnen Beitrag anzeigen

Carsten1234

Registriert seit: 9. Apr 2008
Ort: Vechelde
178 Beiträge
 
Delphi 8 Professional
 
#20

Re: Anzahl der Felder in einem Record

  Alt 21. Jan 2009, 12:22
Zitat von Mavarik:
Hää CSV Dateien sind doch so aufgebaut, wenn ich mich nicht irre, das pro Zeile immer alle Felder enthalten seien müssen.
Waraum dann so Heckmeck mit Varianten Records und vielen verschiedenen Typen?
Das Gerät, von dem CSV-Dateien gelesen bzw. wieder hingeschrieben, ist entfernbar. Trotzdem soll die Möglichkeit bestehen, dass ich nenne es mal Setup als ganzes Paket auch auf Festplatte speichern zu können.
Stelle Dir (abstraktes Bsp.) ein intelligentes Auto vor. Dieses Auto schließt Du an Deinen PC an und kannst dessen Setup auslesen als da wären Farbe, Reifen (Typ, Größe), Motor. Das Auto ist ferner so intelligent, dass Du ihm auch ein geändertes Setup zukommen lassen kannst.
Nun könnte sich der Reifentyp je nach Jahreszeit ändern. Das könnte dann so aussehen:
Delphi-Quellcode:
  TReifentyp = packed record
    case Jahreszeit: byte of
      Sommerzeit: (
                    Breite_Sommer : word;
                    Querschnitt_Sommer : word;
                    Felgengroesse_Sommer: word;
                    Index_Sommer : word;
                    Hersteller_Sommer : string;
                  );
      Winterzeit: (
                    Breite_Winter : word;
                    Querschnitt_Winter : word;
                    Felgengroesse_Winter: word;
                    Index_Winter : word;
                    Hersteller_Winter : string;
                  );
  end;

  TMotortypen = packed record
    case Motortyp: byte of
      Benziner: (
                  KW_Benziner : word;
                  Hubraum_Benziner: word;
                )
      Diesel: (
                  KW_Diesel : word;
                  Hubraum_Diesel: word;
                )
     
  end;

  TAuto = packed record
    Farbe : string;
    Reifen : TReifenTyp;
    Motor : TMotortypen;
    Kennzeichen: string;
    Land : string;
    Bemerkungen: array[1..1024] of char;
  end;
Das Auto stellt Dir die Infos als CSV-Datei zur Verfügung, diese Infos sollen jedoch auch als ganzes "Paket" auf HDD gespeichert werden können. Ferner kannst Du dem Auto aber auch über einem sog. Teilsetup (in CVS-Form) sagen, dass es nun keine Sommereifen mehr hat, sondern Winterreifen. Es muss also nicht das komplette Record "TAuto" geschickt werden, es reicht das Record "Reifen" zu schicken.
Wieder bezogen auf mein Problem wäre es nun ganz schön, wenn es zur Konvertierung Record => CVS und Speicherung des Teilsetups nur eine Routine geben würde, der einfach nur das entsprechende (Teil-)Record übergeben wird.
Jetzt kann man natürlich die Zusatzfrage stellen, warum man nicht vor dem Speichern auf HDD erst nochmal das aktuelle Komplettsetup ausliest. Nun, im Record "TAuto" gibt es weitere Zusatzinfos, die das Auto nicht kennt wie sein Kennzeichen, das Land, in dem es zugelassen ist und Bemerkungen zum Auto ("Heckklappe rostet" oder so). Diese Informationen braucht das Auto auch nicht, sie sollen aber zur Verfügung stehen, wenn das Setup von HDD ins Programm geladen wird.
Nun etwas klarer?

Gruß, Carsten
  Mit Zitat antworten Zitat