Hyperlink Url Splitten und wieder zusammenfügen mit höherer Nummerierung....

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Ibis1980.

    Hyperlink Url Splitten und wieder zusammenfügen mit höherer Nummerierung....

    Hi VB Paradise,

    momentan arbeite ich an einem kleinen Programm das mir Bildersets anzeigen kann, bis jetzt klappt alles bis auf das Link Splitten...

    Beispiel Url
    abc.com/def/gh001x001.jpg

    ich versuchte es bis jetzt mit einer For Each Schleife die beim / einen Split vollzieht,
    allerdings weis ich jetzt nicht wie ich die Seperaten Blöcke dann in eine Variable bekommen um den Link dann weiter unten wieder zusammen zufügen?

    der einzige Part der sich hier änder ist das gh001x001.jpg dies wird an zweiter stelle immer um eines erhöht auf gh001x002.jpg,
    der erste Wert wird mit einer NumericUpDown erhöht dies würde sich dann aber denke ich auch klären wenn ich das mit dem Splitting in den Griff bekommen würde.

    Danke für euere Hilfe und Tipps

    Ibis
    Hi @Ibis1980:

    Hier mal eine sehr kleinschrittige Methode, die das kann was du anstrebst.
    Überlege dir mal für welche Fälle das nicht klappen könnte und was man besser machen könnte.

    VB.NET-Quellcode

    1. Dim ex As String = "www.abc.com/def/gh001x002.jpg"
    2. Dim r As New Regex("\d+") 'RegEx um Zahlen zu finden
    3. Dim matches As MatchCollection = r.Matches(ex) 'Matchen
    4. Dim lastMatch As Match = matches(matches.Count - 1) 'Letzte Zahl holen
    5. Dim length As Integer = lastMatch.Value.Length 'Länge holen
    6. Dim value As Integer = Integer.Parse(lastMatch.Value) 'In Zahl umwandeln
    7. value = value + 1 'Hochzählen
    8. If value >= 10 Then 'Wenn die neue Zahl größer als 10 ist muss vorher eine 0 weniger stehen
    9. length = length - 1
    10. End If
    11. 'Zusammenfügen
    12. Dim newString As String = ""
    13. For i As Integer = 1 To length - 1
    14. newString &= "0"
    15. Next
    16. newString &= value.ToString()
    17. 'Ersetzen
    18. Dim result As String = ex.Replace(lastMatch.Value, newString)
    19. MessageBox.Show(result)


    Oder

    VB.NET-Quellcode

    1. Dim match = (From m In New Regex("\d+").Matches(ex) Select (DirectCast(m, Match))).Last()
    2. Dim value As Integer = Integer.Parse(match.Value)
    3. Dim length As Integer = match.Value.Length
    4. value = value + 1
    5. If value >= 10 Then length = length - 1
    6. Dim s As String = ""
    7. For i As Integer = 1 To length - 1
    8. s &= "0"
    9. Next
    10. s &= value.ToString()
    11. MessageBox.Show(ex.Replace(match.Value, s))
    @LaMiy::
    Ist das:

    LaMiy schrieb:

    VB.NET-Quellcode

    1. Dim s As String = ""
    2. For i As Integer = 1 To length - 1
    3. s &= "0"
    4. Next
    5. s &= value.ToString()
    nicht das gleiche wie:

    VB.NET-Quellcode

    1. Dim s As String = String.Empty.PadLeft(length-2).Replace(" "c, "0") & value.ToString()
    ?
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais