vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Demo: Suche nach Worten 
Autor: Manfred X
Datum: 15.04.14 10:15

Wenn es nicht um die Prüfung von Substrings in einer Zeichenfolge,
sondern um die Ermittlung von Worten in einem Text geht, empfiehlt
sich eine Routine, die den zu durchsuchenden Text zunächst in
einzelne Worte spaltet, etwa so:
''' <summary>Suche im Text nach dem Listenindex des ersten Wortes, 
'''  das in der Wortliste enthalten ist</summary>
''' <param name="Text">zu durchsuchender Text</param>
''' <param name="SplitStrings">"Trennzeichen zwischen den Worten im Text</param>
''' <param name="wordlist">Liste mit Worten, nach denen zu suchen ist</param>
''' <param name="Ignorecase">Groß-/Kleinschreibung bei Suche ignorieren?</param>
''' <returns>Listen-Index des ersten gefundenen Wortes (oder -1) </returns>
Public Function IndexOfWord(ByVal text As String, _
                            ByVal wordlist As Collections.Generic.List(Of _
                            String), _
                   Optional ByVal SplitStrings() As String = Nothing, _
                   Optional ByVal Ignorecase As Boolean = False) As Integer
 
    'Eingaben prüfen
    If wordlist Is Nothing OrElse wordlist.Count = 0 Then Return -1
    If String.IsNullOrEmpty(text) Then Return -1
 
    If SplitStrings Is Nothing OrElse SplitStrings.Count = 0 Then
       SplitStrings = {" "} 'Default-Trennzeichen zwischen Worten
    End If
 
    'Text und Wortliste für den internen Gebrauch umsetzen
    Dim ilist As New Collections.Generic.List(Of String)
    Dim itext As String = ""
 
    If Ignorecase Then
       itext = text.ToLower
       For i As Integer = 0 To wordlist.Count - 1
          ilist.Add(wordlist(i).ToLower)
       Next i
    Else
       itext = text
       ilist = wordlist       
   End If
 
   'Worte im Text anhand der Trennzeichen ermitteln
   Dim iwords As New Collections.Generic.List(Of String) _
        (itext.Split(SplitStrings, StringSplitOptions.RemoveEmptyEntries))
 
   'die Worte im Text prüfen
   Dim idx As Integer
   For Each wrd As String In iwords
       'Suche nach dem Wortlisten-Index von wrd
       idx = ilist.IndexOf(wrd)
       If idx > -1 Then Return idx 'wrd gefunden
   Next wrd
 
   Return -1 'kein Wort aus dem Text in der Wort-Liste gefunden
End Function


Beitrag wurde zuletzt am 15.04.14 um 10:35:13 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Abhängigkeiten in If und For each abfragen1.991Undertaker1714.04.14 18:54
Re: Abhängigkeiten in If und For each abfragen1.448Manfred X14.04.14 20:01
Re: Abhängigkeiten in If und For each abfragen1.378Undertaker1714.04.14 20:10
Re: Abhängigkeiten in If und For each abfragen1.343Manfred X14.04.14 20:18
Re: Abhängigkeiten in If und For each abfragen1.361Undertaker1714.04.14 20:28
Re: Abhängigkeiten in If und For each abfragen1.337Manfred X14.04.14 20:33
Re: Abhängigkeiten in If und For each abfragen1.323ErfinderDesRades15.04.14 02:04
Re: Abhängigkeiten in If und For each abfragen1.410Manfred X15.04.14 07:18
Re: Abhängigkeiten in If und For each abfragen1.487Undertaker1714.04.14 20:56
Re: Abhängigkeiten in If und For each abfragen1.456Manfred X14.04.14 21:14
Re: Abhängigkeiten in If und For each abfragen1.384Undertaker1714.04.14 21:20
Demo: Suche nach Worten1.357Manfred X15.04.14 10:15

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel