InStr Frage

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Andi2572.

    VB.NET-Quellcode

    1. Dim satz As String = RichTextBox1.Text
    2. Dim anfang As Integer
    3. Dim ende As Integer
    4. Dim länge As Integer
    5. Dim Interpret As String
    6. anfang = InStr(satz, "www.simfy.de/artists/") + 7
    7. ende = InStr(satz, "/")
    8. länge = ende - anfang
    9. Interpret = Mid(satz, anfang, länge)
    10. MessageBox.Show(Interpret)


    Das ist mein aktueller Code. Vb sagt nun, dass ArgumentException wurde nicht behandelt. Das Argument Length muss größer als oder gleich 0 (null) sein.
    Was ist falsch?
    Es müsste doch meinen Künstler in einer MessageBox anzeigen?!

    MFG
    1. Instr ist nur noch drin, weils in VB6 war. Bitte "IndexOf" verwenden
    2. Du findest zweimal DAS GLEICHE "/"! Du musst das zweite NACH dem ERSTEN suchen!
    3. anfanf und ende sind bei dir also erstmal gleich, aber dann addierst du noch 7 zum Anfang. Damit ist anfang > Ende und die Differenz ist < 0

    EDIT:
    4. Sorry, der Code ist aber auch zu grottig ;) Du suchst erst nach "blablabla /" in einem vermutlichen Riesentext und danach suchst du im selben Text nach "a". Klar das das zweite irgendwo VORHER auftaucht.
    5. Und das "+7" ist auch völliger Humbug, da du noch die Länge des Suchstrings hinzuaddieren musst, wenn du 7 Zeichen HINTER den gefundenen Text kommen willst.

    EDIT2:
    SO müsste das IN ETWA aussehen:

    VB.NET-Quellcode

    1. Dim EinSatz As String = "akasjshdksjdashdkjash blup/bla/zupf"
    2. Dim Pos1, Pos2 As Integer
    3. Pos1 = EinSatz.IndexOf("blup/")
    4. If Pos1 >= 0 Then
    5. Pos1 += "blup/".Length
    6. Pos2 = EinSatz.IndexOf("/", Pos1)
    7. If Pos2 > Pos1 Then
    8. Debug.Print(EinSatz.Substring(Pos1, Pos2 - Pos1))
    9. End If
    10. End If

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „picoflop“ ()

    VB.NET-Quellcode

    1. Dim EinSatz As String = RichTextBox1.Text
    2. Dim Pos1, Pos2 As Integer
    3. Pos1 = EinSatz.IndexOf("www.simfy.de/artist/")
    4. If Pos1 >= 0 Then
    5. Pos1 += "www.simfy.de/artist/".Length
    6. Pos2 = EinSatz.IndexOf("/", Pos1)
    7. If Pos2 > Pos1 Then
    8. Debug.Print(EinSatz.Substring(Pos1, Pos2 - Pos1))
    9. End If
    10. End If


    Stimmt er jetzt?
    Wie kann ich das Ergebnis (ist eine Nummer) in einer ListView anzeigen lassen?

    MFG