Zitat von
Luckie:
Kann man jetzt irgendwas konstruieren, dass man jeweils nur den Record entsprechend anpasst und den Rest zum Speichern und Laden so lassen kann? Würde einem viel Arbeit abnehmen. Hat da jemand eine Idee oder ansatz, wie man das machen könnte?
Wenn du dich von normalen Records verabschiedest und stattdessen etwas komplizierteres verwendest, dann geht das.
Ich habe mir mal vor einiger Zeit ein
"typisiertes Variant-Array" gebastelt.
Man hat also ein Array vom Datentyp Variant wobei jedes Element entweder über einen Namen oder einen Indez angesprochen werden kann.
Bei der Initialisierung wird zusätzlich zum Namen und Index auch noch ein Datentyp mitgegeben.
Der Zugriff auf die Daten sieht z.B. so aus:
Delphi-Quellcode:
const
list:array [0..8] of TVAitem =
(
(name:'ArtikelNr'; vartype: varString),
(name:'ArtikelName'; vartype: varString),
(name:'EAN13'; vartype: VarString),
(name:'Menge'; vartype: varDouble),
(name:'MengeUnit'; vartype: varString),
(name:'BruttoGewicht';vartype: varDouble),
(name:'NettoGewicht'; vartype: varDouble),
(name:'AuftragsNr'; vartype: varString),
(name:'EquipmentNr'; vartype: varString)
);
begin
va := TTypedVariantArray.Create(list);
va.ValueByName['ArtikelNr'] := '4711';
va.ValueByName['Menge'] := 150.0;
Da man die Anzahl der Elemente und alle Namen abfragen kann, ist es kein Problem die Daten
in eine INI-Datei zu speichern.