Speichern und lesen einer TObjectList
28. Okt 2005, 15:27
hallo,
wie ich schon in anderen threads geschrieben habe, programmiere ich gerade eine kleine datenbank für videospiele.
sie besteht im wesentlichen aus einer TObjectList und ein eintrag in dieser liste enthält neben diversen strings (name,hersteller,usw.) auch noch eine TObjectList mit screenshots.
ich habe das programm soweit am laufen, dass ich auf einen "Add"-button klicken kann, wodurch sich ein formular öffnet, in dem ich die eingaben für einen neuen eintrag machen kann inklusive der screenshots.
so. wenn ich jetzt aber abschätze, dass jeder eintrag inklusive der grafikdaten ca. 200kb gross wird, bekomme ich auf kurz oder lang ein speicherproblem.
wie wäre das wohl am besten zu realisieren? sollte in der TObjectList nur der pfad für die jeweiligen screenshots enthalten sein, die dann bei bedarf von platte geladen werden?
da immer ca. 10 einträge im listenfeld sichbar sind, würden ja beim durchscrollen durch die liste unglaublich viele zugriffe auf die platte statt finden (immer die 10 sichtbaren einträge würden ihre screenshots über den gegebenen pfad lesen wollen).
zur zeit lade ich die bilder direkt in meine ObjectList, aber wie schon erwähnt, kann das schnell in grössenordnungen von 100MB und mehr anwachsen. zumal ja gar nicht immer alle informationen benötigt werden, sondern nur die gerade sichtbaren.
oder kann man die ObjectList in einen stream speichern, der dann immer die informationen ausliest, die gerade benötigt werden? es erscheint mir allerdings nicht sinnvoll, denn wenn ich beispielsweise eintrag Nr. 5 von 400 lösche, müsste ja die gesamte liste ab eintrag 5 neu gespeichert werden.
hat da jemand eine idee, wie das am einfachsten zu realisieren ist?
|