Получить последний элемент массива строк в vb6? - PullRequest
15 голосов
/ 29 августа 2009

Как можно получить последний элемент массива строк в Visual Basic 6?

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

Private Sub Form_Load()
    Dim aPath() As String
    Dim FileName As String
    Dim realExt As String

    FileName = "A long dotty.file.name.txt"
    aPath = Split(FileName, ".")

    realExt = aPath(3) ' <-- how to not hardcode?'

    MsgBox ("The real extension is: " & realExt)
    Unload Me
End Sub

Ответы [ 3 ]

30 голосов
/ 29 августа 2009

Я думаю, что использование Ubound должно помочь:

Private Sub Form_Load()
    Dim aPath() As String
    Dim FileName As String
    Dim realExt As String

    FileName = "A long dotty.file.name.txt"
    aPath = Split(FileName, ".")

    realExt = aPath(UBound(aPath))

    MsgBox ("The real extension is: " & realExt)
    Unload Me
End Sub
4 голосов
/ 29 августа 2009
realExt = aPath(ubound(aPath))
0 голосов
/ 21 октября 2016

Однако, если это действительно расширение, за которым вы работаете, это сработает:

Private Sub Form_Load()
    Dim sFileName As String
    Dim lPos As Long
    Dim sRealExt As String

    sFileName = "A long dotty.file.name.txt"
    lPos = InStrRev(sFileName, ".")
    If lPos Then sRealExt = Mid$(sFileName, lPos + 1)
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...