Zitat von
marabu:
ich finde deine binäre Ausgabe nicht gut - die Ausgabe im
CSV-Format oder als
XML-Datei fände ich dem Anwendungsfall angemessener - aber so sollte es funktionieren:
Jupp.
XML wäre wohl das Ziel. (
CSV halte ich für ziemlich haarig...)
Auf dem Weg dahin wäre vielleicht
DFM ganz brauchbar.
Ohne das öffentliche Interface des alten Records zu ändern wäre das möglich:
Delphi-Quellcode:
interface
uses
Classes,
dpCollection;
type
TLeistung = class(TCollectionItem)
private
fSpannung : double;
fLeistung : double;
fStrom : double;
fNr : Byte;
published
property Nr : Byte read fNr write fNr;
property Spannung : double read fSpannung write fSpannung;
property Strom : double read fStrom write fStrom;
property Leistung : double read fLeistung write fLeistung;
end;
{$DEFINE TYPED_DP_COLLECTION_TEMPLATE}
_COLLECTION_ITEM_ = TLeistung;
{$INCLUDE dpCollection_tmpl.pas}
TLeistungCollection = class(_COLLECTION_)
end;
implementation
{$INCLUDE dpCollection_tmpl.pas}
end.
Nun hast du eine laufende Lösung bis du
XML unterstützen willst.
Vielleicht baut das einer der "neuen dpCollection-Fritzen" hier in der Zwischenzeit ein.
Delphi-Quellcode:
var
Leistung : TLeistung;
Leistungen : TLeistungCollection;
begin
Leistungen := TLeistungCollection.Create();
try
for i := 1 to 10 do
begin
Leistung := Leistungen.Add();
Leistung.Nr := i;
Leistung.Spannung := ...;
end;
Leistungen.SaveToFile('Miep.dfm');
finally
Leistungen.Free();
end;
Nicht gerade elegant, allemale netter als all das record-Gefriemel.
btw: Die dpCollection gibt's hier:
dpCollection