vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Variablen/Strings · Sonstiges   |   VB-Versionen: VB604.10.04
Reguläre Ausdrücke mit VB6

Auch wenn VB selbst das Benutzen von "regulären Ausdrücken" nicht unterstützt, gibt es für VB6-Entwickler dennoch eine Möglichkeit!

Autor:   Stefan MährBewertung:  Views:  18.598 
www.visualsoft-net.deSystem:  Win9x, WinNT, Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Reguläre Ausdrücke sind eine mächtige Suchsprache, mit der sich auch komplizierte Abfragen auf große Textdokumente durchführen lassen. Regex-Abfragen sind aber nicht nur .NET Programmieren vorbehalten, sondern lassen sich auch von VB6 Entwicklern via der vbscript.dll nutzen.

Öffnen Sie eine Standard-Exe Projekt.

Benötigte Verweise:

  • Microsoft VBScript Regular Expressions 5.5 (system32/vbscript.dll/3)

    Platzieren Sie auf die Form folgende Steuerelemente:

    1. Richtextbox (txtValidate)
    2. Commandbutton (cmdValidate)
    3. Textbox (txtRegex)

    Code:

    Option Explicit
     
    Private Sub Form_Load()
      ' -> Hier legen wir unseren Testtext fest.
      ' Sie können diesen natürlich beliebig verändern
      txtValidate.Text = "Wir finden ein paar Wörter in einem Text" & _
        vbCrLf & "Wie benütze ich Regular Expressions in VB6?"
    End Sub
    ' Fundstellen farblich kennzeichnen
    Private Sub cmdValidate_Click()
      Dim oRegex As RegExp
      Dim m As Match
      Dim strPattern As String
     
      ' --> Pattern einlesen und prüfen
      strPattern = txtRegex.Text
      If Len(Trim(strPattern)) = 0 Then Exit Sub
     
      On Error GoTo ErrHandler
     
      ' --> die Selectionfarbe der Richtextbox zurücksetzen
      With txtValidate
        .SelStart = 1
        .SelLength = Len(.Text)
        .SelColor = vbBlack
      End With
     
      ' --> "Regular-Expression"-Objekt erstellen
      Set oRegex = New RegExp
      With oRegex
        .Pattern = strPattern
        .Global = True
     
        ' --> Alle Matches durchlaufen
        For Each m In .Execute(txtValidate.Text)
          ' --> Gefundene Einträge in der Richtextbox markieren
          With txtValidate
            .SelStart = m.FirstIndex
            .SelLength = m.Length
            .SelColor = vbRed
          End With
        Next 
      End With
     
      ' --> Regex Objekt zerstören
      Set oRegex = Nothing
      Exit Sub
     
    ErrHandler:
      MsgBox Err.Description & vbCrLf & Err.Number, vbCritical + vbOKOnly, "Error"
      Set oRegex = Nothing
      Err.Clear
    End Sub

    Nun kommen wir zum Ausdruck für die Abfrage selbst.

    Starten Sie das Projekt probieren einmal folgende "Abfragen" aus:

    VB        -> suche nach dem Wort VB im Text
    i         -> sucht alle „i" im Text
    [0-9]     -> sucht alle numerischen Werte im Text
    (ein|ich) -> sucht alle "ein" und "ich" im Text



  • Anzeige

    Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
    (einschl. Beispielprojekt!)

    Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
    - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
    - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
    Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
     
     
    Copyright ©2000-2019 vb@rchiv Dieter OtterAlle 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.