Top-Themen

Aktuelle Themen (A bis Z)

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

Mitglied: 17735

17735 (Level 2)

01.10.2007, aktualisiert 02.10.2007, 5688 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
Visual Studio

VB - Mail Attachments - Anhang mittels Listbox

gelöst Frage von KurdirektorVisual Studio4 Kommentare

Hallo, ich habe folgenden Code geschrieben Dieser funktioniert soweit auch ganz gut aber leider nur dann wenn auch alle ...

Windows 8

Surface Windows 8.1 RT WLAN status begrenzt, Regedit eintrag berechtigung

gelöst Frage von GreenITWindows 81 Kommentar

Hallo, Wenn ich mit dem Surface in ein bestimmtes Netzwerk (mit erforderlicher Anmeldung) verbinde, zeigt mir das Surface an ...

VB for Applications

Suche mittels Eintrag in Listbox und einer gewählten Checkbox

Frage von aivilonVB for Applications2 Kommentare

Moin Admins Folgendes Szenario: Bei mir im Geschäft verwendet die Vermittlungshotline ein wirklich abstruses, riesiges Excel als Telefonliste. Es ...

DSL, VDSL

Telekom drosselt bzw. begrenzt internetzugang

Frage von Wern2000DSL, VDSL13 Kommentare

Hallo, ich hatte Jahrelang einen 16.000er Anschluss. Meine Download Raten zappelten zwischen 14-16 mbit also nichts zu klagen. Seit ...

Neue Wissensbeiträge
Erkennung und -Abwehr
OpenSSH-Backdoor Malware erkennen
Tipp von Frank vor 3 StundenErkennung und -Abwehr

Sicherheitsforscher von Eset haben 21 Malware-Familien untersucht. Die Malware soll Hintertüren via OpenSSH bereitstellen, so dass Angreifer Fernzugriff auf ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 3 TageniOS3 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor!
Tipp von Criemo vor 3 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Off Topic
Avengers 4: Endgame - Erster Trailer
Information von Frank vor 6 TagenOff Topic2 Kommentare

Ich weiß es ist Off Topic, aber ich freue mich auf diesen Film und vielleicht geht es anderen hier ...

Heiß diskutierte Inhalte
Windows Server
Einziger Domänencontroller ersetzen - Windows Server 2012R2 - Hostname
Frage von DeRo93Windows Server25 Kommentare

Guten Tag, Leider haben wir einen Domänencontroller dessen Komponentenspeicher defekt ist. Alle Maßnahmen sind da leider fehlgeschlagen. Nun wurde ...

Server-Hardware
WS 2016 Essentials Hardware
Frage von ChefknechtServer-Hardware19 Kommentare

Moin welche Hardware würdet ihr empfehlen? Dell Poweredge HP Proliant Fujitsu Ich bin total konfus was nun nötig ist, ...

Windows Server
Welche Option fürs Windows Server Installations besser
Frage von backitWindows Server18 Kommentare

Hi Zusammen, ich werde unserer AD (SBS 2011) und Exchange 2010 Servern auf neuen physikalischen Server umziehen. ich habe ...

Windows Update
Fehler bei Updates über WSUS
Frage von Hendrik2586Windows Update11 Kommentare

Guten Tag liebe Kolleginen und Kollegen, lang lang ist meine letzte Anfrage her. Hier etwas das mich nun schon ...