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
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
realExt = aPath(ubound(aPath))
しかし、それが本当にあなたが求めている拡張機能である場合、これは仕事をします:
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