Das OFFIZIELLE PROFAN SUPPORT FORUM
Einsteigerfragen
PROFAN-Programmierung
Helfer & Tools
Anregungen & Vorschläge
PROFAN-NEWS
Die Regeln!
2 - PROFAN-Programmierung

 Neues Thema  |  Zur Übersicht  |  Suchen  |  Einloggen   Neuerer Beitrag  |  Älteres Thema 
 Fehler bei Kapazität der Listboxliste?
Autor: Karl-Jürgen Hilger (---.dyn.telefonica.de)
Datum:   03.03.17 11:12

Hi

Die alte maximale Kapazität der Listboxliste vor XProfan 11 lag bei 262144 Einträgen.

Bei Nutzung der Funktion Move("ArrToList", ...) mit einem mehrdimensionalen Array fiel mir auf, daß ab diesem alten Wert Schluß ist. (Fehlermeldung "Zu viele Elemente")

Vielleicht ist der alte Wert auch an anderen Stellen in XProfan noch aktiv?

Anbei ein Testbeispiel:
Array mit 262144 + 1 Einträgen.
XProfan x3.1

Gruß
KJ
 CLS
 declare long b[262144]
 WhileLoop 0,262144
   b[&loop] = &loop
 EndWhile
 Move("ArrToList", b[])
 Print GetCount(0)
 Waitinput
 




Nachricht bearbeitet (03.03.17 11:15)

Beitrag beantworten
 
 Re: Fehler bei Kapazität der Listboxliste?
Autor: Heinz Brill (---.dip0.t-ipconnect.de)
Datum:   03.03.17 16:25

steht ja auch so in der Hilfe :

Zitat:


Seit jeher kennt XProfan eine Stringliste, die sogenannte "Listboxliste".
Ursprünglich geplant, um Daten für die Anzeige in einer vorgegebenen
Listbox mit Listbox$ anzuzeigen, vermag sie jedoch viel mehr und wurde
zur zentralen temporären Stringliste. Ab Version 11 kann sie bis zu
260.000 Strings aufnehmen und verwalten.


Der Test beweist es auch :

 CLS
  declare Long b[259999]
  WhileLoop 0,259999
    b[&loop] = &loop
  EndWhile
  Move("ArrToList", b[])
  Print GetCount(0)
  Waitinput
 


wenn man jetzt schrittweise erhöht, gehen da auch ein
paar mehr. In einem richtigen Programm würde ich aber
zur Sicherheit nicht über 260000 gehen.

Vielleicht mußte Roland damals wegen den neuen Strings
auch in der Listboxliste was ändern.

H.Brill
XProfan X4 + FreeProfan

Nachricht bearbeitet (03.03.17 16:35)

Beitrag beantworten
 
 Re: Fehler bei Kapazität der Listboxliste?
Autor: Karl-Jürgen Hilger (---.dyn.telefonica.de)
Datum:   03.03.17 17:18

Komisch, bei mir in der Hilfe unter Referenz steht:

XProfan ab Version 11
2 Mia Programmzeilen mit je max. 32767 Zeichen
2 Mia Arrayelemente je Datentyp
2 Mia Einträge in der Listboxliste <<--------------------------------
2 Mia Variablen je Typ
262144 Einträge je Liste je Datentyp


Auch erhielt ich keine Fehlermeldung, wenn ich die Liste mit addstring(0) und mehr als 262144 Elementen befüllte.
Das ist der genaue Wert, der in der Referenz als der von Xprofan 10 und früher genannt wird.
Ich meine auch, schon bei anderer Gelegenheit viel mehr als 262144 Strings in die Listboxliste reingeklopft zu haben.

Gruß
KJ



Nachricht bearbeitet (03.03.17 17:37)

Beitrag beantworten
 
 Re: Fehler bei Kapazität der Listboxliste?
Autor: Heinz Brill (---.dip0.t-ipconnect.de)
Datum:   03.03.17 18:39

Meine Hilfe ist vom 30.06.2015.

Ich finde, daß alle Listen die gleiche max.Füllmenge
haben sollten. Wäre ja gerade bei den Move-Funktionen
wichtig.

Andererseits : Wann hat man schon solche große
Mengen an Daten ?

H.Brill
XProfan X4 + FreeProfan

Nachricht bearbeitet (03.03.17 18:54)

Beitrag beantworten
 
 Re: Fehler bei Kapazität der Listboxliste?
Autor: Karl-Jürgen Hilger (---.dyn.telefonica.de)
Datum:   03.03.17 19:04

Meine noch neuer, vom 31.06.2016
An den beiden Stellen (Referenz / Kapitel Listboxliste) steht bei Dir und mir aber sicherlich das gleiche Unterschiedliche.
Oder steht in der Referenz bei Dir was anderes?

Aber Du hast recht - die "alte" Grenze besteht noch, habs eben mit
addstring .... und 500000 Einträgen versucht.
Es kommt bei diesem Befehl keine Fehlermeldung, aber bei der 262144 war Schluß.

Ich seh grad, daß Du Deinen letzten Post noch erweitert hast.
Zu Deiner rhetorischen Frage: Ich finde die Frage nach der wirklichen Kapazität der Listboxliste sinnvoll, egal wie oft man mit solch großen Datenmengen zu tun hat.

Vielleicht ist Roland ja so nett und sagt uns einfach, ob die Listboxliste laut Referenz aktuell eigentlich 2 Mia Einträge haben sollte oder nicht.

Gruß
KJ



Nachricht bearbeitet (03.03.17 22:43)

Beitrag beantworten
 
 Re: Fehler bei Kapazität der Listboxliste?
Autor: Heinz Brill (---.dip0.t-ipconnect.de)
Datum:   04.03.17 07:03

Wo hast du denn die Hilfe her ?

Hier, im Downloadbereich finde ich nur
eine vom 31.03.2016. Und da steht das gleiche
wie ich oben zitiert habe, drin.

Und du hast Recht : Bei der Listbox steht in der
Hilfe die 262144.

Deine ist ja 3 Monate jünger und somit
vermutlich auch aktueller.

Das andere muß Roland klären, ob auch bei der
Listboxliste 2 Mia Einträge möglich sind.

H.Brill
XProfan X4 + FreeProfan

Beitrag beantworten
 
 Re: Fehler bei Kapazität der Listboxliste?
Autor: Karl-Jürgen Hilger (---.dyn.telefonica.de)
Datum:   04.03.17 12:11

31.03.2016 ist schon richtig - da hatte ich mich vertippt, sorry!

Ich selbst beziehe mich aber schon seit X12 auf die Angaben unter "Referenz / Technische Daten", weil ich davon ausgegangen bin, daß der Text aus dem Kapitel "Listboxliste" (Dein Zitat) einfach noch nicht aktualisiert worden ist.

Ich möchte auch nochmal klar begründen, warum man nicht einfach sagen kann: "Wann hat man schonmal solche Datenmengen?" - was ja die Wichtigkeit in Frage stellt.

1. Roland selbst bezeichnet die Listboxliste als DIE zentrale Stringliste.
2. Roland ermöglicht es, mehrdimensionale Arrays über die Move- Funktion als Textfile zu speichern.

Gerade ein mehrdimensionales Array kann locker und schnell das Fassungsvermögen der "alten" Listboxliste überschreiten.
Es ist ja nicht so, daß alle Profaner nur mit Daten vom Typ Schachbrett[7,7] arbeiten.

Die Erweiterung einer als zentral eingestuften Stringliste ist daher ähnlich wichtig wie die Erweiterung der Adressräume (16-32-64 Bit).

Gruß
KJ



Nachricht bearbeitet (04.03.17 12:13)

Beitrag beantworten
 
 Re: Fehler bei Kapazität der Listboxliste?
Autor: Michael Wodrich (---.customer.vsm.sh)
Datum:   04.03.17 16:48

Ob mehrdimensionale Arrays dafür geplant waren in die ListboxListe befördert zu werden weiß ich nicht. Es werden dann ja mehrere Dimensionen in eine Dimension überführt.
Aber die Grenze liegt nach wie vor bei 262144.
Roland hatte damals zu viel geändert und wollte das wieder korrigieren.

Bei solchen Dimensionen an Texten sollte man auch lieber die Texte in eine Datenbank übertragen.
Diese hat auch mehrere Vorteile
- die Möglichkeit des sortierten Zugriffs
- gefiltert (mit WHERE-Klausel) herauslesen
- Änderungen innerhalb der Datenbank
- ...

Die SQLite3-Datenbank ist hier eigentlich die richtige Wahl. Sie kann ja im temporären Bereich angelegt werden. (Welcher Nutzer findet schon freiwillig
den Weg dorthin). Und wenn man eine PROC mitpflegt in der dann alle temporären Daten wieder entsorgt werden geht es doch.

--
Programmieren, das spannendste Detektivspiel der Welt.
Programmierumgebung: | XProfan (neueste) | Win (neueste)


Beitrag beantworten
 
 Re: Fehler bei Kapazität der Listboxliste?
Autor: Karl-Jürgen Hilger (---.dyn.telefonica.de)
Datum:   05.03.17 06:16

Ja, Michael, vielen Dank für Deine Hinweise, aber genau deswegen habe ich auch nirgendwo behauptet, daß Move("ArrToList" eine gute Speichermöglichkeit für mehrdimensionale Arrays sei.
(Obwohl es geht - trotz der resultierenden Eindimensionalität)

Da aber nun mal dieser Eindruck offenbar entstanden ist, fasse ich den simplen Kern besser noch mal kurz zusammen:

Es wird im ersten Post eigentlich nur die Listboxliste und deren technische Daten aus der Hilfe thematisiert. Mehr nicht.
Eine kurze, klare Frage für eine kurze, klare Antwort, die offenbar nur schwer zu haben ist.
Im weiteren ging es nur um die Beantwortung von Heinz Frage:
"Wann hat man schon solche große Mengen an Daten ?"
Antwort: Es gibt vielleicht doch noch einige Profaner mit großen Datenmengen,
und die als "zentral" bezeichnete Listboxliste sollte nicht ausgerechnet die kleinste mögliche sein.
Die Funktion sollte nicht davon abhängig sein, ob man öfter mit großen Datenmengen zu tun hat oder nicht.
Und: eine von Roland ermöglichte Funktion sollte nicht an einer zu kleinen Listboxliste scheitern.
(auch wenn es andere/bessere Verfahren gibt.)

Ich sehe nach wie vor nichts Unvernünftiges in diesen Gedanken.

Michael, hab ich das denn jetzt richtig verstanden, daß Roland 'eigentlich' die 2 Mia Enträge für die Listboxliste einbauen wollte?
Mir ist nämlich nicht ganz klar, wie Du das meintest: "...und wollte das wieder korrigieren."
Und Du hast recht. an SQL sollte ich sowieso bald mal ran.

Gruß
KJ



Nachricht bearbeitet (05.03.17 07:30)

Beitrag beantworten
 
 Re: Fehler bei Kapazität der Listboxliste?
Autor: Heinz Brill (---.dip0.t-ipconnect.de)
Datum:   05.03.17 09:19

Mal nebenbei :

 CLS
 declare long b[262144]
 b[] = &Index
 Move("ArrToList", b[])
 Print GetCount(0)
 Waitinput
 


So geht's 3 mal schneller als in der WhileLoop Schleife.

H.Brill
XProfan X4 + FreeProfan

Beitrag beantworten
 
 Re: Fehler bei Kapazität der Listboxliste?
Autor: RGH (---.hsi18.kabel-badenwuerttemberg.de)
Datum:   05.03.17 13:27

Tatsächlich ist die maximale Listboslisten-Größe immer noch 262144. Hier irrt also die Hilfe.
Hintergrund: Ich hatte tatsächlich vor, die Listboxliste zu erweitern, bin dann aber kurz vor dem Release von XProfan 11 auf Schwierigkeiten gestoßen und habe es dann erst einmal gelassen ... und vergessen, die Hilfe wieder anzupassen.

Ich werde mir das für die nächste Version noch mal anschauen.

Gruß
Roland

Offizielle Homepage: http://www.xprofan.de
Der neue PROFAN-FAN-SHOP: http://www.spreadshirt.de/shop.php?sid=9330
Das kostenlose Kartenspiel: http://www.rgh-soft.de/sprace/sprace.htm

Beitrag beantworten
 
 Re: Fehler bei Kapazität der Listboxliste?
Autor: Karl-Jürgen Hilger (---.dyn.telefonica.de)
Datum:   05.03.17 13:45

Vielen Dank, Roland, für diese völlig zufriedenstellende Antwort!

Schön, daß Du Dir das nochmal anschauen willst!

Gruß
KJ



Beitrag beantworten
 
 Re: Fehler bei Kapazität der Listboxliste?
Autor: Mario Patzlaff (---.dip0.t-ipconnect.de)
Datum:   16.05.17 06:39

Eine Sache, die mich schon ewig lange beschäftigt :-? ....

http://xprofan.net/intl/de/bugs/eintraege-in-der-listboxliste/

Ein Schelm, wer böses dabei denkt...
Win XP SP3.xx, Win 7, 8.1 -- XProfan X3


Beitrag beantworten
 
 Re: Fehler bei Kapazität der Listboxliste?
Autor: Jörg Sellmeyer (---.dip0.t-ipconnect.de)
Datum:   16.05.17 17:48

Da lässt sich mit der neuesten Version doch bestimmt was Ultraschnelles in ASM programmieren. Irgendson Stringarray müsste da doch schnell zusammengebastelt sein.

_____________________________________
Man sollte seiner Zeit nicht zu weit voraus sein

Beitrag beantworten
 Foren-Liste  |  Baumstruktur   Neuerer Beitrag  |  Älteres Thema 


 Foren-Liste  |  Zur Registrierung 
 Benutzerlogin
 Benutzername:
 Passwort:
 Login-Daten speichern:
   
 Passwort vergessen?
E-Mail-Adresse oder Username unten eingeben. Dann wird Dir per e-Mail ein neues Passwort zugeschickt.

phorum.org