Split von rechts

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von VB1963.

    Split von rechts

    Hi!

    Ich möchte eine Textbox von rechts durchsuchen und alles recht des ersten "\" von rechts wegnehmen.

    Also z.b.:

    C:\Programme\Unsinn

    Unsinn soll weg.

    Ich habe verschieden viele "\" also kann ich nicht die anzahl angeben.

    code:

    VB.NET-Quellcode

    1. TextBox5.Text = TextBox5.Text.Split(CChar("\"))(0)
    Wenn es Pfade sind, schau Dir mal dies an:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    2. Dim pfad = "c:\Temp\unsinn\unsinn2\unsinn3\unsinn4"
    3. Dim di = New IO.DirectoryInfo(pfad)
    4. For i = 1 To 3
    5. di = di.Parent
    6. MessageBox.Show(di.FullName)
    7. Next
    8. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich habe verschieden viele "\" also kann ich nicht die anzahl angeben
    Ich lade mit einem klick einen Order. Dieser Ordnerpfad wird in Textbox5 angegeben.

    Ich habe also keine Ahnung zuvor welcher Pfad da drinnen steht...

    VB.NET-Quellcode

    1. TextBox5.Text= (TextBox5.Text, InStrRev(Textbox5.Text, "\") + 1))


    funktioniert leider nicht... was kann ich tun? Er soll mir einfach alles nach dem ersten "\" von rechts rauslöschen.
    Gibt hier jede Menge an Möglichkeiten. Ich würd iwi sowas wie das da machen:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. Dim s As String = "d:\downloads\stuff\games"
    4. Dim parts As New List(Of String)
    5. Dim s1 As String = ""
    6. parts.AddRange(s.Split("\"c))
    7. s1 = String.Join("\", parts.GetRange(0, parts.Count - 1))
    8. MessageBox.Show(s1)
    9. End Sub
    10. End Class


    Aber, das ich jetzt auch nicht 100% auf dem Laufenden bin, was die DirectoryInfo-Klasse so alles kann, würd ich aber mal alle Member dieser Klasse durchschauen, obs nicht iwo nen eleganteren Weg gibt. Bin ich aber zu faul atm. :)
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Und so:

    VB.NET-Quellcode

    1. Dim pfad = "c:\Temp\unsinn\unsinn2\unsinn3\unsinn4"
    2. Dim index = pfad.IndexOf("\")
    3. index = pfad.IndexOf("\", index + 1)
    4. Dim pfad2 = pfad.Substring(0, index)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    So ginge es auch :)

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    2. Dim txtshort As String = "C:\Programme\Unsinn"
    3. txtshort = Mid(txtshort, 1, Strings.InStrRev(txtshort, "\"))
    4. MsgBox(txtshort)
    5. End Sub


    LG Moe