Frage zu DIM

Anfängerfragen zum Programmieren mit PureBasic.
walter741
Beiträge: 68
Registriert: 26.10.2008 09:21
Computerausstattung: P4, 2600, 1,5GB Ram, XP SP3
Wohnort: Wien

Beitrag 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)
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

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

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

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

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Antworten