Seite 2 von 2
Verfasst: 14.12.2008 10:22
von walter741
Danke an alle die sich meinem Problem angenommen haben!
Ich werde es einmal mit einem Array testen.
Das würde auch meinen Wissensstand mit PB entsprechen.
Wenn das nicht effizient genug ist, werde ich die Idee von Kiffi mit Datenbank testen. => (Absolutes Neuland für mich)
Verfasst: 14.12.2008 16:46
von cxAlex
Wenn du wirklich große Mengen an Strings speichern willst hätt ich hier einen Stringpool dafür geschrieben:
http://www.purebasic.fr/german/viewtopi ... stringpool
Die lese - Zugriffszeiten sind wesentlich schneller als per Array, und mit der Intelligenten Save-Funktion kannst du bei vielen ähnlichen Strings speicher sparen.
Verfasst: 14.12.2008 17:00
von Kaeru Gaman
mh... ich versteh nicht wo der Unterschied sein soll...
PB benutzt einen Stringpool, in dem Array stehen ja nur die Pointer.
...
davon ab, ich würde mich bei der struktur so nah wie möglich ans Original halten.
wenn die Reihenfolge der Typen nicht feststeht,
also von datensatz zu datensatz verschiedene Typen aufeinanderfolgen können,
kann man alles als Strings speichern, oder einen Variant-Typ einrichten.
Normalerweise würde ich zu einer Struktur raten, die den Datensatz wiedergibt,
aber bei 400 Feldern im Satz wäre das wohl eher unpraktisch.
wichtig wäre auf jedenfall, darauf zu achten, dass die Felder näher im Speicher zusammenliegen.
also, bei 1000 Datensätzen mit je 400 Feldern muss man (1000,400) dimensionieren, nicht umgekehrt.
wahrscheinlich wäre es auch praktisch, das Array mit 25-zeichigen Fixstrings einzurichten,
dann stehen die Daten direkt im Array nicht irgendwo im Pool.
Verfasst: 14.12.2008 17:04
von cxAlex
Kaeru Gaman hat geschrieben:mh... ich versteh nicht wo der Unterschied sein soll...
PB benutzt einen Stringpool, in dem Array stehen ja nur die Pointer.
Es ist auf jeden Fall schneller, wurde getestet. Auserdem in manchen Fällen viel platzsparender. Dazu vergrößert sich der Speicher dynamisch, du musst nicht wie bei einem Array vorher schon die Anzahl der Elemente wissen oder ReDimmen, alles automatisch.