vb проблема с получением имени файла из имени пути файла - PullRequest
0 голосов
/ 17 января 2020

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

, код

 Private Sub LblLoadSavedPrompt1_Click(sender As Object, e As EventArgs) Handles LblLoadSavedPrompt1.Click
        Dim IntLs0 As Integer, IntLs1 As Integer, IntLs2 As Integer, IntLs3 As Integer
        LoadSaved()
        IntLs0 = StrGN.Count                                                    ' StrGN = StrFileName used in LoadSaved()  OK
        IntLs2 = 0 '-1-
        IntLs3 = 0 '-2-
        For IntLs1 = IntLs0 To 0 Step -1                                        ' IntLs1 =  From IntLs0 to 0
            If StrGN.Substring(IntLs1, 0) = "." Then IntLs2 = IntLs1 '-3-            ' IntLs2 should be Possition of "." from end of string  in StrGN
            If StrGN.Substring(IntLs1, 0) = "S" And IntLs2 > IntLs1 Then '-5-       ' IntLs3 should be Next occurance of 'S' from Location of "." 
                IntLs3 = IntLs1 ' -4-
                Exit For
            End If
        Next
        LblGridNumber.Text = StrGN.Substring(IntLs3, (IntLs2 - IntLs3))         ' alwasys shows "      " should be "SH91" for the  file being used
        lblStatusMessage1.Text = IntLs3.ToString() & "," & IntLs2.ToString()    ' Always shows 0 , 0  should be :- 37 , 41 at this point
        BtnSolve1.Visible = True
    End Sub

Если я изменю IntLs2 на -1- 41 и IntLs3 на -2- 37 отображается правильный результат, верните их в 0, метка вернется к пустому. Если я изменяю IntLs1 на -3- на 41 и IntLs1 на -4- на 37, то метка остается пустой, если я удаляю 'и IntLs2> IntLs1' в секции на -5-, я получаю тот же отрицательный результат, я пытался чтобы отсортировать это в течение 4 часов, сузили задачу до двух строк в следующем l oop.

1 Ответ

0 голосов
/ 18 января 2020

Я выбрал легкий путь, так как только я буду его использовать. Окно сообщения в начале процедуры сохранения говорит, что должно начинаться с Ucase "S" и размера сетки Макс. 7 символов и дополняться пробелами, а затем заменить вышеуказанную процедуру на

 Dim IntLs0 As Integer
        LoadSaved()
        StrGN = StrFileName
        IntLs0 = StrGN.Count
        LblGridNumber.Text = StrGN.Substring(IntLs0 - 11, 7).TrimEnd()
        lblStatusMessage1.Text = IntLs0 - 10.ToString() & "," & IntLs0 - 6.ToString()
        BtnSolve1.Visible = True

Работать, пока имя файла Только 7 персонажей длиной

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...