Thema Datum  Von Nutzer Rating
Antwort
Rot Regex pattern und Auswertung
29.11.2017 20:07:27 Jakob
NotSolved
29.11.2017 20:09:40 Jakob
NotSolved
30.11.2017 10:00:27 Gast20054
NotSolved
30.11.2017 10:09:30 Gast73170
NotSolved
30.11.2017 10:39:40 Gast14254
NotSolved

Ansicht des Beitrags:
Von:
Jakob
Datum:
29.11.2017 20:07:27
Views:
1063
Rating: Antwort:
  Ja
Thema:
Regex pattern und Auswertung

Hallo,

Ich bin Anscheinend eine absolute VBA Lusche. Ich wollte ein Programm dass in PHP bereits funktioniert in VBA umschreiben. Jetzt habe ich zwei Probleme.

Hier erst mal mein Code

Sub findWordinTXT()
  Dim sWord As String, sPath As String, sSearchPath As String, FileName As String, InputData
  Dim AnzFound As Integer
  Dim regex As New RegExp
  AnzFound = 0
  'Wort nach dem gesucht werden soll
  sWord = "schwarz"
  'Suche nach allen Textdateien im Verzeichnis c:\temp\xl
  sSearchPath = "C:\Users\Jakob\Desktop\ProjektArtikelfilter\*.txt"
  sPath = "C:\Users\Jakob\Desktop\ProjektArtikelfilter\"
  FileName = Dir(sSearchPath)
  regex.Pattern = "/\b\d{3}([.\s]?)\d{3}\1\d{2}(?:\1\d{1,2})?\b/"
  If FileName <> "" Then
    Do While FileName <> ""
       Open sPath & FileName For Input As #1
       Do While Not EOF(1)
          Line Input #1, InputData
          If regex.test(InputData) Then
          'If InStr(1, InputData, sWord) > 0 Then
            'Zeile mit Suchwort gefunden
            AnzFound = AnzFound + 1
            Sheets("Auswertung").Cells(AnzFound, 1) = FileName
            Sheets("Auswertung").Cells(AnzFound, 2) = InputData
          End If
       Loop
       Close #1
       'nächste Datei
       FileName = Dir
    Loop
  End If
End Sub

Ich glaube mit Regex kommt VBA einfach an seine Grenzen.

Problem 1: Er akzeptiert mein jetziges Pattern nicht. Es funktioniert wunderbar in jedem Tester und in PHP. Auch leichtere Patterns gehen ohne Problem mit VBA. Aber eben nicht dieses. Muss dass in VBA anders geschrieben werden?

Problem 2: Die Auswertung ist sehr dumm da er mir immer die komplette Zeile aus dem String wiedergegeben wird inklusive der Nummer. Ich will aber nur die Nummer ohne Text. Der File Name davor soll bleiben.

Beisiel

A1= test.txt    B1= 123 456 789

A2=test2.txt   B2= 123.456.789

 

Beide Zahlen fallen in das Pattern. Und ich will auch nur sie. Ich brauche irgendeine Funktion wie preg_match_all in PHP. Finde aber leider keine bessere wie diese.

Könnt Ihr mir weiterhelfen?


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Regex pattern und Auswertung
29.11.2017 20:07:27 Jakob
NotSolved
29.11.2017 20:09:40 Jakob
NotSolved
30.11.2017 10:00:27 Gast20054
NotSolved
30.11.2017 10:09:30 Gast73170
NotSolved
30.11.2017 10:39:40 Gast14254
NotSolved