Seite 1 von 2

Frage zu DIM

Verfasst: 12.12.2008 23:01
von walter741
Hallo

Sind grosse Arrays üblich, bez wo sind die Grenzen
bez verwendet man etwas anderes bei grossen Datenmengen?

Brauche ein Array 1000x400 Strings.

Dim Liste.s (1000, 400)

Was meinen die Profis ???

Walter
(PB4.20)

Verfasst: 12.12.2008 23:07
von Kaeru Gaman
die obergrenze für ein Array ist die grenze des speichers.
also, das bedeutet du kannst ca. 1 bis 1.6 Gigabyte für ein Array verbraten.

ob das sinnvoll ist, ist die andere Frage.

für 1000x400 strings brauchst du 800.000 byte für die pointer, und dann eben den speicher für die strings selber,
also wenn deine strings im schnitt 20 zeichen lang sind, sind das noch mal 400.000x 20 +1 byte (im ANSI modus)
damit wärst du grad mal bei ca. 9 MB das ist also schon vernachlässigbar wenig.

Verfasst: 12.12.2008 23:16
von walter741
Danke für die schnelle Antwort.

Sie enthält alles was ich wissen wollte.

Nochmals Danke und schöne Weihnachten

Verfasst: 13.12.2008 02:40
von hjbremer
und wenn das alles zu langsam wird, ist guter Rat teuer :D

Verfasst: 13.12.2008 11:34
von HeX0R
Kaeru Gaman hat geschrieben: für 1000x400 strings brauchst du 800.000 byte für die pointer, und dann eben den speicher für die strings selber,
[klugscheiss]
Eigentlich sollten es 1.600.000 Bytes (bzw. 3.200.000 Bytes bei PB x64) sein für die Pointer, oder wurstelst du noch mit 16Bit rum? :lol:
[/klugscheiss]

Verfasst: 13.12.2008 13:14
von Kaeru Gaman
Oy! Bild

yo hast recht... hab ich mich vertan.

Verfasst: 13.12.2008 20:22
von walter741
+++und wenn das alles zu langsam wird, ist guter Rat teuer +++

Was könnte das bedeuten?
Welche Zugriffszeiten sind zu erwarten?

Es sollte eine Protokolldatei eingelesen werden.
Diese wird regelmässig von einem anderen Programm erstellt.

Ich würde nur einige Zeilen im Array a 400 Strings bearbeiten.
Dann vergehen einige Minuten und es sollten wieder einige
Zeilen a 400 Strings aktualisiert werden. Und das den ganzen Tag lang.
Ist eine Zeile im Array abgeschlossen, so werden die Daten dieser Array-Zeile abgespeichert und diese Arrayzeile gelöscht.

Verfasst: 13.12.2008 22:00
von Kaeru Gaman
> einige Zeilen im Array a 400 Strings
> wieder einige Zeilen a 400 Strings aktualisiert

... wie lang sind denn deine strings?

eventuell würde sich ein ganz anderes format empfehlen.


bei
> Zeilen a 400 Strings ... den ganzen Tag lang
> diese Arrayzeile gelöscht
würde ich eher an einen Datensatz mit 400 Feldern denken,
und das ganze in einer Liste ...

Verfasst: 13.12.2008 23:10
von walter741
Es handelt sich um Produktionsdatein einer Maschine.
Für jedes Produkt kann es bis zu 400 Werte geben.

Die Werte bestehen aus Texten max 25 Zeichen und aus Zahlen bis 8 Stellen ohne Komma, und bis zu 4 stellige Zahlen mit 2 Kommastellen.

Ich brauche Platz für ca 1000 Produktdaten im Speicher, da ich sie zum
Auswerten teilweise miteinander verknüpfen muss.
Die einzelene Produktdaten sollten in einigen ListViewGadgets angezeigt werden.
Ein Produkt besteht aus mehreren kleinen Teilen. Somit kann ich ein Produkt unterbrechen und es erst zB 3 Tage später fertig machen. Dazwischen kann ich viele andere Produkte machen.

Darum auch Speicher für 1000 Produkte.
Ich könnte natürlich auch 1000 Dateien anlegen und diese vollschreiben.

Verfasst: 14.12.2008 00:12
von Kiffi
walter741 hat geschrieben:Ich könnte natürlich auch 1000 Dateien anlegen und diese vollschreiben.
schon mal über den Einsatz einer Datenbank nachgedacht?

Grüße ... Kiffi