Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

(VB 6) Listbox - Begrenzte Zahl an Einträgen

Frage Entwicklung VB for Applications

Mitglied: 17735

17735 (Level 2)

01.10.2007, aktualisiert 02.10.2007, 5612 Aufrufe, 4 Kommentare

Hallo,

ein von mir geschriebenes Programm in VB6 berechnet alle Primzahlen bis zu einer vom Benutzer vorgegebenen oberen Grenze. Dabei werden alle Primzahlen einer Listbox hinzugefügt:

lstPrimzahlen.AddItem Primzahl

Anschließend, wenn die Berechnung fertig ist, möchte ich in einem Label ausgeben, wie viele Primzahlen gefunden wurden:

lblPrimzahlenCounter.Caption = lstPrimzahlen.ListCount & " gefundene Primzahlen"

Dies funktioniert soweit auch ganz gut, wenn man als obere Grenze eine Zahl kleiner als 386.000 eintippt. Wenn die Zahl größer ist, scheint das berechnen noch zu funktionieren, und die Primzahlen landen auch (anscheinend) vollständig in der Listbox, im Label steht dann allerdings eine negative Zahl, z. B.:

-32697 gefundene Primzaheln

Was soll das bzw. wie kann ich das beheben? Hat eine Listbox in VB vielleicht eine begrenzte Zahl an Einträgen? Habe dazu bisher nichts gefunden.

Gruß,
Ahnenforscher
Mitglied: AndreasHoster
01.10.2007 um 19:07 Uhr
Ich finde, der Fehler klingt sehr nach falscher Interpretation von signed und unsigned Integern.

Eine unsigned Integer hat einen Wertebereich von 0 bis 65535 (16bit) und eine signed Integer geht von -32768 bis 32765, wobei das höchstwertige Bit bestimmt, ob positiv oder negativ, d.h. wenn die Listbox mehr als 32765 Elemente enthält und eine unsigned Integer zurückgibt (was auch Sinn macht, da es ja nicht weniger als 0 Einträge geben kann, aber die implizite Wandlung in einen String von signed Integern ausgeht, dann kann sowas schon passieren.

Es gibt doch sicherlich in VB6 Funktionen, die explizit Zahlen in Strings umwandeln und auch mit unsigned Integern zurechtkommen.

Nicht auszuschließen ist aber natürlich auch die Variante, daß VB6 tatsächlich nur 32765 Einträge in einer Listbox verkraftet. Habe kein VB6, kann es leider nicht ausprobieren. Aber mit einer Zählschleife von 1 bis 40000 und das Ergebnis in eine Listbox reinschreiben könnte man das recht einfach testen.
Bitte warten ..
Mitglied: 17735
01.10.2007 um 19:16 Uhr
Hallo,

also ich kenne die Funktion CStr() die eine Variable in den Variablentyp String umwandelt - und diese wende ich auch an. Leider bringt das mit und ohne Umwandlung keinen Unterschied, wobei deine Begründung am Anfang ziemlich logisch scheint, da der Fehler wirklich in diesem Bereich auftritt.

Gruß,
Ahnenforscher
Bitte warten ..
Mitglied: 17735
01.10.2007 um 19:40 Uhr
Hi,

also ich hab da gerade was gefunden:

Aufgrund eines Bugs in der VB-Listbox ist es nicht möglich, auf mehr als ca. 32000 Einträge zuzugreifen, da die ListCount-Eigenschaft den Datentyp Integer hat. Ab dieser Grenze ist der Listcount-Wert blöderweise negativ! Unter Windows9x ist es noch nichteinmal möglich, überhaupt mehr als 32000 Einträge einzufügen! Unter Win2000 kann man sie zwar einfügen, aber nicht drauf zugreifen.

(Zitat von http://www.activevb.de/tipps/vb6tipps/tipp0469.html)

Schade!

Gruß,
Ahnenforscher
Bitte warten ..
Mitglied: 17735
02.10.2007 um 17:03 Uhr
Hat jemand eine Idee, wie man das Problem umgehen kann? Vielleicht gibt es eine gleichwertige Alternative zur Listbox in VB6?

Gruß,
Ahnenforscher
Bitte warten ..
Ähnliche Inhalte
VB for Applications
Suche mittels Eintrag in Listbox und einer gewählten Checkbox (2)

Frage von aivilon zum Thema VB for Applications ...

Batch & Shell
gelöst Powershell Listbox Items verschieben (2)

Frage von internet2107 zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell: ScrollBar in ListBox definieren (11)

Frage von Markus2016 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(2)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Netzwerkprotokolle
gelöst Leiten "dumme" Switches VLAN-Tags mit durch? (26)

Frage von coltseavers zum Thema Netzwerkprotokolle ...

Netzwerkgrundlagen
Kann auf Freigabe nicht Zugreifen (16)

Frage von leon123 zum Thema Netzwerkgrundlagen ...

Windows Server
gelöst Neues KB für W10 1607 und W2K16 wieder mal nicht im WSUS 3.0, hat das noch jemand? (16)

Frage von departure69 zum Thema Windows Server ...

Router & Routing
FTTH bzw FTTB Router (13)

Frage von ukulele-7 zum Thema Router & Routing ...