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

Ein Eintrag in einer Listbox suchen

Frage Entwicklung VB for Applications

Mitglied: PL-q

PL-q (Level 1) - Jetzt verbinden

23.08.2008, aktualisiert 06.09.2008, 7207 Aufrufe, 3 Kommentare

Hallo,
ich möchte einen bestimmten Eintrag in einer Listbox suchen. Habe eine Menge im Internet gefunden, die auch funktionierten, aber leider entsprichten sie nicht so ganz meinen Vorschriften!

Nehmen wir mal an wir haben 3 Einträge in einer Listbox : 1. Test und 2. Crunkstar & 3. Crunk

Jetzt suche wir Test, es wird ohne probleme gefunden, suche ich Tests, wirds nicht gefunden.
Suche ich Crunkstar wirds gefunden, suche ich Crunk, wird Crunkstar angezeigt! Weil Crunkstar vor Crunk steht! Ich möchte aber eine GANZ genaue Suche....

Folgenden code habe ich für diesen Versuch benutzt:
Public Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg _
As Long, ByVal wParam As Long, ByVal lParam As _
String) As Long

Public Const LB_FINDSTRING = &H18F

(Ist in einem Modul, deshalb Public und nicht Private)
Sub find()
Dim ListIndex&
ListIndex = SendMessage(frmMain.usernames.hwnd, LB_FINDSTRING, -1, username)
frmMain.usernames.ListIndex = ListIndex
If ListIndex > -1 Then
checkpw
Else
wrongid
End If
End Sub
Funktioniert nur bei einer Fehlgeschlagende Suche nach meinen Vorstellungen.

Ich hoffe ihr könnt mir weiterhelfen! Ist nähmlich für mich sehr wichtig!

MFG
PL-q
Mitglied: bastla
23.08.2008 um 19:19 Uhr
Hallo PL-q!

Mit dem dritten "SendMessage"-Parameter legst Du fest, ab welchem Index die Suche beginnen soll (siehe http://msdn.microsoft.com/de-de/library/bb775187(en-us,VS.85).aspx ).

Ein Algorithmus könnte so aussehen:
Wenn das erste gefundene Element nicht mit dem Suchstring übereinstimmt, den Index dieser Fundstelle zwischenspeichern (damit keine Endlosschleife daraus wird, wenn der gesuchte Eintrag nicht enthalten ist) und in einer Schleife weiter suchen, wobei jeweils der Index des zuletzt gefundenen Elements als dritter Parameter übergeben wird. Die Schleife sollte enden, wenn Du den richtigen Eintrag hast, oder wenn Du wieder den Index der ersten Suche erhältst (weil der gesuchte Eintrag nicht enthalten ist) ...

Grüße
bastla
Bitte warten ..
Mitglied: PL-q
06.09.2008 um 13:51 Uhr
Und was muss ich dort so genau ändern? die -1 zu einer 0?? Habe mich mit sowas nicht sehr viel außereinander gesetzt^^
Bitte warten ..
Mitglied: bastla
06.09.2008 um 14:22 Uhr
Hallo PL-q!

Und was muss ich dort so genau ändern? die -1 zu einer 0?
Für die erste Suche: nein, hier beginnst Du mit -1; danach dann anstelle der -1 das jeweilige Ergebnis (Variable "ListIndex") der vorhergehenden Suche ...

Für die folgenden ListBox-Einträge
Crunkstar
Test
Noch ein Test
Crunkie
Crunk
weiterer Test
Crunk&müde
müsste das so ablaufen:
01.
Suche ab -1 -> Ergebnis: 0 (Index von "Crunkstar") 
02.
Suche ab 0  -> Ergebnis: 3 (Index von "Crunkie") 
03.
Suche ab 3  -> Ergebnis: 4 (Index von "Crunk") 
04.
keine weitere Suche, da der Begriff gefunden wurde: der Eintrag stimmt mit dem Suchbegriff genau überein (ev beim Vergleichen LCase() verwenden, um Unterschiede durch Groß-/Kleinschreibung auszuschalten)
Grüße
bastla
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 ...

Microsoft Office
Excel: Wert aus mehreren Datein suchen und zugehörige Werte ausgeben (10)

Frage von RubyLissy zum Thema Microsoft Office ...

Batch & Shell
gelöst Bat soll in einer .dll eine Zeile suchen und Diese + 2 darunterliegende anzeigen (10)

Frage von Gangster137910 zum Thema Batch & Shell ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (29)

Frage von FA-jka zum Thema Windows 10 ...

LAN, WAN, Wireless
Komplett neues Netzwerk, Ubiquiti WLAN, Router, Switch (15)

Frage von Freak-On-Silicon zum Thema LAN, WAN, Wireless ...

Backup
Backup Wochen- Monats- Jahressicherung (13)

Frage von Meterpeter zum Thema Backup ...

RedHat, CentOS, Fedora
Fedora, RedHat, Centos: DNS-Search Domain setzen (13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...