Wort zwischen 2 bekannten Wörtern auslesen (String)

Autun

Grünschnabel
Hallo!

Ich hab jetzt schon das halbe Internet durchkämmt, aber irgendwie noch nichts passendes für mein Vorhaben gefunden. Zumindest nichts, was sich auf .net bezieht. :(

Mein Problem ist folgendes:

Ich habe zwei bekannte Zeichenfolgen ("text1" und "text2") in einem String (s), zwischen denen ein bestimmtes Wort steht. Genau dieses Wort möchte ich auslesen.


In VB6 sah das ganze ungefähr so aus:
Code:
         If s <> "" Then
               sPos = 1
               Do
                   sPos = InStr(sPos, s, "text1")
                   If sPos > 0 Then
                       ePos = InStr(sPos, s, "text2")
                       If ePos > 0 Then
                           str_Ausgelesen = Mid$(s, sPos + 5, ePos - sPos - 9)
                       End If
                       sPos = sPos + 1
                   Else
                       Exit Do
                   End If
               Loop
           End If

Allerdings scheint es in vb.net ja kein Instr zu geben... zumindest hagelt es Fehler, wenn ich versuche den code zu verwenden. :(

Hat jemand eine Idee wie man das Problem halbwegs geschickt lösen kann?

Schon mal vielen Dank im voraus! :)

Viele Grüße
Autun
 

Autun

Grünschnabel
Perfekt, genau das was ich so verzweifelt gesucht habe!
Insgesamt wird der Code dadurch sogar noch einfacher. :D

Code:
sPos = s.IndexOf("text1")
ePos = s.IndexOf("text2")
If sPos > (-1) And ePos > (-1) Then
   str_Ausgelesen = Part(i).Substring(sPos +5, (ePos - sPos) - 5)
End If

Wundervoll, vielen Dank :)

Gruß
Autun
 

einfach112

Grünschnabel
Hi ..... kurze frage .... brauche aktuell genau o.g. code .....
Doch leider weis ich nicht was Part für ein typ ist ?!
kann mir da jemand helfen !?
Danke im voraus
mike

Update .... bzw. sehe gerade das ich überhaupt nicht weis welcher typ überhaupt was ist ?!

Ich habe es jetzt mal so versucht da ich es so verstanden habe ..... Aber irgendwas läuft da wohl falsch ?!
Code:
 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        RichTextBox1.Text = "dies ist ein test für anfang und ende"
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim spos As String
        Dim s As String = 0

        Dim ePos As String
        Dim str_Ausgelesen As String


        spos = s.IndexOf("ist")
        ePos = s.IndexOf("anfang")
        If sPos > (-1) And ePos > (-1) Then
            str_Ausgelesen = RichTextBox1.Text.Substring(spos + 5, (ePos - spos) - 5)
        End If
        Label1.Text = str_Ausgelesen(0)
    End Sub
End Class
 
Zuletzt bearbeitet von einem Moderator:

Spyke

Premium-User
Bitte Code Tags verwenden.

Ich vermute mal oben im Code von Autum ist Part eine string Auflistung (wegen dem Index Zugriff mit i, und darauf folgenden String Operationen).

Was läuft bei dir nicht, was verstehst du unter falsch?
Das einizige was ich erstmal sehe ist das du IndexOf für s Aufrufst.
Dies hat bei dir aber keinen Zeichenfolge.
Ich vermute mal du müsstest IndexOf mit RichTextBox1.Text aufrufen, da du dort ja auch den bereich ausschneiden willst.