Разделение переменной с разделителями на элементы массива в VB.NET - PullRequest
0 голосов
/ 05 марта 2012

I длинная переменная в vb.net, которая содержит следующую информацию,

Dim g As String = "$C:\Program Files\Cavaj Java Decompiler\cavaj.exe$C:\Users\Yoosuf\AppData\Local\Google\Chrome\Application\chrome.exe$C:\Program Files\DVD Maker\dvdmaker.exe$C:\Program Files\Adobe\Adobe Photoshop CS2\ImageReady.exe$C:\Program Files\Java\jre6\bin\javaws.exe$"

Символ $ используется в качестве разделителя для отделения каждого элемента от другого. Мне нужно добавить имя файла exe в конце каждого пути в список. Однако первоначальный процесс извлечения переменной для отдельных элементов массива не работает должным образом.

Dim strArr() As String = g.Split("$")  'This variable is empty
For count = 0 To strArr.Length - 1
Dim arr As String = strArr(count).Split("\")

Dim strval As String = ""
For i As Integer = 3 To arr.Length - 1
        strval = arr(i)
        Dim j As Integer = arr.Length - 1
        strval = arr(j)
        Dim result As String = strval.Substring(g.Length - 5)
        result = g.Substring(g.LastIndexOf("\") + 1)
        ListBox1.Items.Add(result)
 Next
Next

Ответы [ 2 ]

4 голосов
/ 05 марта 2012

Нет необходимости делать всю эту работу. Класс System.IO.Path имеет методы, чтобы сделать это для вас. Вы хотите использовать System.IO.Path.GetFileName или System.IO.Path.GetFileNameWithoutExtension . Поскольку вы уже разбили все пути к файлам, просто передайте эти пути любому из вышеупомянутых методов и добавьте результат в список.

Dim strArr() As String = g.Split("$")
For Each path As String In strArr
    ListBox1.Items.Add(System.IO.Path.GetFileName(path))
Next
1 голос
/ 05 марта 2012

Пожалуйста, обратитесь к приведенному ниже коду и соответствующим комментариям. Также я закомментировал некоторый код, который, по моему мнению, не требуется, основываясь на том, что вы хотите сделать.

Dim strArr() As String = g.Split("$")  'This variable is empty
        For count = 0 To strArr.Length - 1
            Dim arr() As String = strArr(count).Split("\") ' Split returns an array

            Dim strval As String = ""
            For i As Integer = 3 To arr.Length - 1
                'strval = arr(i)
                Dim j As Integer = arr.Length - 1
                strval = arr(j)
                'Dim result As String = strval.Substring(g.Length - 5)
                'result = g.Substring(g.LastIndexOf("\") + 1)
                ListBox1.Items.Add(strval)
            Next
        Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...