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)
Frage zu DIM
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.
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.
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster
PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
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.
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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
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.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.
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster
PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86