Ein Teil eines Textes Auslesen

F_P_aus_K

Erfahrenes Mitglied
ich möchte aus eine Datei, die ich eingelesen hab:

Dim DateiNr As Integer
DateiNr = FreeFile()

FileOpen(DateiNr, CurDir() & "Daten.dat", OpenMode.Input)

eine Zeichenfolge aus der Datei suchen bzw vergleichen. mit zeigern hab ich das wohl schon hinbekommen, aber wenn eine datei 10 zeilen hat, hab ich nicht mehr die lust die Zeichen abzuzählen.

z.B.

Inhal von Daten.dat:

"Werte"
wert1: 1
wert2: 2
wert3: 3
.
.
.
ich möcht jetzt die zahl auslesen, die hinter "wert3: " steht


mfg und danke

frank
 
Ich würds mit regulären Ausdrücken machen (System.Text.RegularExpressions).

Code:
Imports System.Text.RegularExpressions
Dim R as new Regex("(?<name>\w+):\s{0,}(?<value>[0-9]+)",RegexOptions.Multiline)
Dim Matches as MatchCollection = R.Matches(InputString)
Dim Match as Match
For each Match in Matches
Dim name as String = Match.Groups.Item("name").Value
Dim value as String = Match.Groups.Item("value").Value
[usw.]
Next Match


"(?<name>\w+)" steht für den Namen
":" ist das :
"\s{0,}" steht für beliebig viele Leerzeichen. Oder keines.
"(?value>[0-9]+)" steht für den Wert

Ich hoffe, dass ich keinen Fehler gemacht habe und dir helfen konnte.
 
Funktioniert Super

Dim R As New Regex("(?<name>\w+):\s{0,}(?<value>[0-9]+)", _
RegexOptions.Multiline)

Dim Matches As MatchCollection = R.Matches(SText)
Dim Match As Match

For Each Match In Matches

Dim name As String = Match.Groups.Item("name").Value
Dim value As String = Match.Groups.Item("value").Value

If name = "Wert1" Then
Label4.Text = value
ElseIf name = "Wert2" Then
Label5.Text = value
End If

Next Match
 

Neue Beiträge

Zurück