VB.net wie entferne ich einen Teil vom String

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Yanbel.

    VB.net wie entferne ich einen Teil vom String

    Hallo Zusammen, ich habe ein Problem und bin bald am verzweifeln. Vielleicht könnt Ihr mir ja helfen.
    Ich speichere meine Daten auf einem NAS. Wenn ein Ordner dort gespeichert wird, macht das NAS aus
    der Datei z.B. aus MAINTOC.pdf ein MAINTOC (2018_11_21 08_27_58 UTC).pdf. Nun möchte ich mit einem
    Programm die Zeichen (2018_11_21 08_27_58 UTC) entfernen. Ich lasse mir den Ordnerinhalt in einer
    Listbox anzeigen und durchlaufe Zeile für Zeile. Dies macht es auch. Jedoch wird am Dateinamen nichts geändert.
    Kann mir jemand helfen?
    Mein Code lautet:

    Dim zwischenvariable As String
    Dim Pos1, Pos2
    For i = 0 To ListBox1.Items.Count - 1
    ListBox1.SetSelected(i, True)
    zwischenvariable = Me.ListBox1.SelectedItem
    Pos1 = zwischenvariable.IndexOf("(")
    Pos2 = zwischenvariable.IndexOf(")")
    zwischenvariable = zwischenvariable.Remove(Pos1, Pos2)
    Next

    Schon mal im Voraus vie len Dank.

    VB.NET-Quellcode

    1. Dim name As String = " MAINTOC (2018_11_21 08_27_58 UTC).pdf"
    2. Dim anfang As Integer = name.IndexOf("(")
    3. name = Trim(name.Remove(anfang - 1, name.Length - anfang - 3))


    Ergibt ein "MAINTOC.pdf"

    Gibt noch weitere Möglichkeiten sowas hin zu bekommen.
    (Auf den VB Namespace habe ich jetzt mal nicht geachtet). ;)

    Aktuelles Projekt: Z80 Disassembler für Schneider/Amstrad CPC :love:

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „oobdoo“ ()

    Vielen Dank, ich habe es hinbekommen.

    VB.NET-Quellcode

    1. For i = 0 To ListBox1.Items.Count - 1
    2. ListBox1.SetSelected(i, True) 'zeile markieren
    3. temp = Me.ListBox1.SelectedItem
    4. zwischenvariable = Me.ListBox1.SelectedItem
    5. Pos1 = zwischenvariable.IndexOf("(")
    6. Pos2 = zwischenvariable.IndexOf(")")
    7. zwischenvariable = Trim(zwischenvariable.Remove(Pos1, zwischenvariable.Length - Pos1))
    8. [b]Rename(TextBox1.Text + "\" + temp, TextBox1.Text + "\" + zwischenvariable + ".pdf")[/b]
    9. Next

    Nachdem ich das Trim genommen habe und die Datei in der Schleife umbenannt habe klappt es.

    Danke, ihr seid super.

    CodeTags gesetzt; die Farbe Rot ist der Moderation vorbehalten ~VaporiZed

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VaporiZed“ ()

    @Panikus Willkommen im Forum. :thumbup:
    @Cheffboss What :?:
    Schreibnst Du ein neues Programm, wenn der nächste Zeitstempel 2 Sekunden später ist?
    Panikus Wenn das Dateinamen sind, behandle sie wie Dateinamen.

    VB.NET-Quellcode

    1. Dim fullName = "c:Temp\\MAINTOC (2018_11_21 08_27_58 UTC).pdf"
    2. Dim fi = New IO.FileInfo(fullName)
    3. Dim name = fi.Name
    4. Dim name2 = name.Replace(name.Substring(name.IndexOf("(") - 1), ".pdf")
    5. MessageBox.Show(name2)
    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!