2009-08-28 2 views
12

Как можно получить последний элемент массива строк в visual basic 6?Получить последний элемент массива строк в vb6?

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

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 
+1

Почему бы просто не найти последний индекс '.' символ в строке? –

ответ

25

Я думаю, с помощью 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 
0

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

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 
Смежные вопросы