1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Wort zwischen 2 bekannten Wörtern auslesen (String)

Dieses Thema im Forum ".NET Café" wurde erstellt von Autun, 16. November 2009.

  1. Autun

    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 (Text):
    1.          If s <> "" Then
    2.                sPos = 1
    3.                Do
    4.                    sPos = InStr(sPos, s, "text1")
    5.                    If sPos > 0 Then
    6.                        ePos = InStr(sPos, s, "text2")
    7.                        If ePos > 0 Then
    8.                            str_Ausgelesen = Mid$(s, sPos + 5, ePos - sPos - 9)
    9.                        End If
    10.                        sPos = sPos + 1
    11.                    Else
    12.                        Exit Do
    13.                    End If
    14.                Loop
    15.            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
     
  2. Spyke

    Spyke Capoeirista Premium-User

  3. Autun

    Autun Grünschnabel

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

    Code (Text):
    1. sPos = s.IndexOf("text1")
    2. ePos = s.IndexOf("text2")
    3. If sPos > (-1) And ePos > (-1) Then
    4.    str_Ausgelesen = Part(i).Substring(sPos +5, (ePos - sPos) - 5)
    5. End If
    Wundervoll, vielen Dank :)

    Gruß
    Autun
     
  4. einfach112

    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 (Text):
    1.  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2.         RichTextBox1.Text = "dies ist ein test für anfang und ende"
    3.     End Sub
    4.  
    5.     Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    6.         Dim spos As String
    7.         Dim s As String = 0
    8.  
    9.         Dim ePos As String
    10.         Dim str_Ausgelesen As String
    11.  
    12.  
    13.         spos = s.IndexOf("ist")
    14.         ePos = s.IndexOf("anfang")
    15.         If sPos > (-1) And ePos > (-1) Then
    16.             str_Ausgelesen = RichTextBox1.Text.Substring(spos + 5, (ePos - spos) - 5)
    17.         End If
    18.         Label1.Text = str_Ausgelesen(0)
    19.     End Sub
    20. End Class
     
    Zuletzt von einem Moderator bearbeitet: 9. Januar 2017
  5. Spyke

    Spyke Capoeirista 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.
     
Die Seite wird geladen...