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

Frage zu DIM

Beitrag 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)
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
walter741
Beiträge: 68
Registriert: 26.10.2008 09:21
Computerausstattung: P4, 2600, 1,5GB Ram, XP SP3
Wohnort: Wien

Beitrag von walter741 »

Danke für die schnelle Antwort.

Sie enthält alles was ich wissen wollte.

Nochmals Danke und schöne Weihnachten
Benutzeravatar
hjbremer
Beiträge: 822
Registriert: 27.02.2006 22:30
Computerausstattung: von gestern
Wohnort: Neumünster

Beitrag von hjbremer »

und wenn das alles zu langsam wird, ist guter Rat teuer :D
Purebasic 5.70 x86 5.72 X 64 - Windows 10

Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag 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]
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Oy! Bild

yo hast recht... hab ich mich vertan.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
walter741
Beiträge: 68
Registriert: 26.10.2008 09:21
Computerausstattung: P4, 2600, 1,5GB Ram, XP SP3
Wohnort: Wien

Beitrag 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.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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 ...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
walter741
Beiträge: 68
Registriert: 26.10.2008 09:21
Computerausstattung: P4, 2600, 1,5GB Ram, XP SP3
Wohnort: Wien

Beitrag 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.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Antworten