AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi TStringList und Add-/InsertObject (Verständnisprobleme)
Thema durchsuchen
Ansicht
Themen-Optionen

TStringList und Add-/InsertObject (Verständnisprobleme)

Ein Thema von Karsten · begonnen am 5. Sep 2003 · letzter Beitrag vom 8. Sep 2003
 
Karsten

Registriert seit: 5. Sep 2003
56 Beiträge
 
Delphi 6 Personal
 
#1

TStringList und Add-/InsertObject (Verständnisprobleme)

  Alt 5. Sep 2003, 15:58
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]
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz