Hallo zusammen.
Meine Erfahrungen mit VB.NET sind noch nicht besonders gut, aber ein paar Grundkenntnisse (Schleifen, if-else, lesen und schreiben von Dateien) von C hab ich schon mal.
Ich soll ein Programm schreiben, dass eine PDF in eine Textdatei umwandelt (hab ich mithilfe von pdftotext schon geschafft und auch implementiert).
Danach lese ich den Text aus der erzeugten Datei zeilenweise ein und möchte nach einem Muster mit Regex suchen. Wenn dieses Muster vorhanden ist, soll es in eine Datei geschrieben werden. Das Schreiben in eine Datei hab ich bisher noch weggelassen, da ich die Ausgabe erstmal auf der Konsole kontrollieren möchte. Den kompletten Text auslesen und ausgeben ist kein Problem, sobald ich aber den Regex Teil dazu tue, bekomme ich eine Fehlermeldung: (siehe die Fehlermeldung im Anhang)
Der Code ist auch mal angehangen. Die vielen Beispiele zu Regex und VB.NET beschränken sich meistens auf eine statische Zeile voller Zeichen. Das kann ich aber in meinem Falle nicht gebrauchen.
Muss ich in der Schleife vielleicht nochmals eine Schleife für die Regex Prüfung einbauen (ist Consolenprogrammierung):
Do
txt = objDateiLeser.ReadLine
Dim re1 As String = ".*?" 'Non-greedy match on filler
Dim re2 As String = "(BL)[0-9]{7}" 'Word 1
Dim r As Regex = New Regex(re1 + re2, RegexOptions.IgnoreCase Or RegexOptions.Singleline)
Dim m As Match = r.Match(txt)
If (m.Success) Then
Dim word1 = m.Groups(1)
Console.WriteLine("(" + word1.ToString() + ")")
End If
Loop Until txt Is Nothing
Ich danke schon mal für eine Hilfestellung um die Fehlermeldung wegzubekommen. Achja, die Regex aus re2 bezieht sich auf die BL-Nummer in der ausgabe.txt ! Ich habe auch mal eine ausgabe.jpg hinzugefügt um zu zeigen, welche Werte ich heraus extrahieren muss. Die Werte in den Positionen gelten dann für alle Positionen.
Danke für eine Hilfe.
Grüße aus Calw,
Tobias Aichele