Verständnisprobleme
-------------------
Ähnlich wie in 'TStringList-Objekte auslesen' möchte ich zum speichern von Daten eine StringList benutzen.
Delphi-Quellcode:
type
TDataSet = class(TObject)
public
Data1 : String;
Data2 : String;
u.s.w.
end;
var
DataSetList : TStringList;
Bisher war TDataSet als record definiert und beim schreiben in die String-List musste jedesmal die Startposition berechnet werden.
In der Hoffnung dieses verhindern zu können versuche ich die Datenstruktur auf 'Object' umzustellen (siehe oben) und die InsertObject und AddObject Eigenschaften der String-List zunutzen.
Daten in string-list speichern:
-------------------------------
Delphi-Quellcode:
procedure DataSetSpeichern;
var
Position : Integer;
TempDataSet: TDataSet;
begin
TempDataSet := TDataSet.Create;
<...Daten von Eingabe-Form lesen, Rückgabe ist TempDataSet...>
<...Position bestimmen...>
DataSetList.InsertObject(Position, '<text>', TempDataSet);
TempDataSet.Free;
end;
Ich habe mir während des speicherns in die String Liste die Daten angesehen die gespeichert wurden und musste feststellen daß eigentlich nur der '<text>' in der liste auftauchte.
Frage: Was wird hier eigendlich gespeichert und wo ist der Rest der Daten die sich in TempDataSet (TDataSet) befanden ?
Daten aus string-list lesen:
----------------------------
Delphi-Quellcode:
function DataSetLesen(Position: Integer): TDataSet;
begin
TempDataSet := DataSetList.Objects[Position] as TDataSet;
end;
Beim auslesen der Daten klappt es gar nicht. Die procedure die 'DataSetLesen' aufruft beinhaltet natürlich auch 'TempDataSet := TDataSet.Create;' und 'TempDataSet.Free;' wird erst dann aufgerufen
wenn die Daten komplett abgearbeitet sind.
Kann aber genau das mein Problem sein ('TempDataSet.Free;') ? Meine Vermutung ist daß möglicherweise nur ein Pointer in der String List gespeichert wird und ich beim aufrufen des '.Free' statements das ziel des Pointers vernichte.
Desweiteren würde ich mich über Informationen über Speichern und Lesen solcher daten in files freuen.
Danke und schönes Wochenende,
Karsten
[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]