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, 5664 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
Batch & Shell

Powershell Auswahlgruppen für Listbox Einträge

gelöst Frage von BuggerBatch & Shell4 Kommentare

Hallo zusammen, ist es möglich, eine Variable mit mehreren Einträgen zu haben und diese in der Listbox auszuwählen? Also ...

Batch & Shell

Powershell Button um Listbox einträge auszuwählen

gelöst Frage von BuggerBatch & Shell4 Kommentare

Hallo, ist es möglich Einträge in einer Listbox per extra Button auszuwählen? In einer langen Liste hätte man so ...

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 ...

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 ...

Neue Wissensbeiträge
Drucker und Scanner
HP-MF-Drucker per Fax angreifbsr
Information von Lochkartenstanzer vor 1 TagDrucker und Scanner3 Kommentare

Endlich eine sinnvolle Verwendung für Faxe: Damit kann man offensichtlich den Drucker übernehmen. lks

Router & Routing

Das pfSense Buch ist jetzt für jeden kostenlos zu beziehen

Tipp von magicteddy vor 2 TagenRouter & Routing2 Kommentare

Bisher war das Buch nur für zahlende Unterstützer verfügbar, jetzt steht für Jedermann kostenlos zur Verfügung. Siehe auch The ...

Firewall

Möglicherweise neue Sicherheitslücke in Mikrotik-Firmware

Information von LordGurke vor 4 TagenFirewall3 Kommentare

Hallo zusammen, vor ein paar Monaten gab es ja bereits eine Sicherheitslücke in der Firmware von Mikrotik-Routern, über welche ...

Erkennung und -Abwehr
Rechner hacken mit Cortana, auch Remote
Information von Lochkartenstanzer vor 5 TagenErkennung und -Abwehr3 Kommentare

heise berichtet über den Vortrag von der Blackhat Open Sesame: Picking Locks with Cortana. Einige Fehler sind schon gefixt, ...

Heiß diskutierte Inhalte
Windows 10
WIN 10 1803 - LTE Stick kein Internetzugriff
Frage von killtecWindows 1023 Kommentare

Hallo, ich habe mit einem Windows 10 1803 Probleme mit einem LTE-Stick. Das gleiche Problem ist bei mehreren Rechnern ...

CPU, RAM, Mainboards
Xeon E5620: noch schnell genug?
Frage von ahussainCPU, RAM, Mainboards19 Kommentare

Hallo allerseits, ich habe die Möglichkeit, aus Restbeständen einen Tower mit Xeon E5620 CPU und 24 GB RAM zu ...

Datenbanken
MySQL Datenbank Import Aufgabe für mehrere .csv dateien
Frage von Marcel1989Datenbanken18 Kommentare

Hi, ich komm nicht weiter. Ich hab auf einem Windows Server 2012 r2 eine MariaDB/MySQL laufen. Nun soll diese ...

Peripheriegeräte
Steckdose(nleiste) mit Schwellwert für off und mit externem Taster
Frage von ahstaxPeripheriegeräte16 Kommentare

Hallo, ich suche eine Steckdose oder Steckdosenleiste mit externem Taster und Schwellwerterkennung. Zu realisieren ist folgendes: Ein PC soll ...