web-dev-qa-db-ja.com

vb6で文字列配列の最後の要素を取得しますか?

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
15
matt wilkie

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
32
MaxiWheat
realExt = aPath(ubound(aPath))
4
shahkalpesh

しかし、それが本当にあなたが求めている拡張機能である場合、これは仕事をします:

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
0
Herb