Ich arbeite an der Standard-Datenklasse unserer Software. Hier ein minimales Beispiel für den aktuellen Stand:Zugriff auf dynamisches Array mit Aufzählungstyp
TDataOne = (Width, Length, Height);
TDataTwo = (Diameter, Weight);
TDatStruct = class;
TDatSubStructOne = class(TDatStruct)
public
myData : array[TDataOne] of double;
procedure writeToFile(AFileName : string);
end;
TDatSubStructTwo = class(TDatStruct)
public
myData : array[TDataTwo] of double;
procedure writeToFile(AFileName : string);
end;
Um Coderedundanz zu reduzieren Ich mag würde eine Datenstruktur mit einer gemeinsamen Schreibfunktion in TDatStruct
begreifen. Die Herausforderungen (zumindest für mich als Amateur) sind:
mydata
ist von variabler Größe in Abhängigkeit von der substruct und basiert auf verschiedenen Aufzählungstypen- Ich mag noch
mydata
mit einem Aufzählungstyp in dem Unter structs zugreifen - ich will nicht wegen der Anzahl der verschiedenen Arrays in der realen Code die Unterstrukturdaten als Parameter an die gemeinsame Schreibfunktion passieren
die einzige Idee (unter Vernachlässigung von Punkt 3) ich habe passieren die Array-Daten von die Unterstruktur mit dem gemeinsamen Schreibvorgang als offene Array-Parameter wie:
writeToFile(AFileName : string; writeData : array of double);
Gibt es eine Möglichkeit ein dynamisches Array mit einem Aufzählungstyp oder einem virtuellen numerischen Array zu kombinieren? Oder bin ich komplett auf dem falschen Weg?
Verwenden Sie in Ihren Parameterdefinitionen immer 'const' wenn möglich. – Johan
Möchten Sie möglicherweise auch die Dateien lesen? Dann müssten Sie identifizieren, welche Klasse folgende Doppelungen in der Datei darstellen, nein? –
@Johan: Danke, das werde ich mir merken! – SiD