Option Explicit
Sub Main()
Dim s As String: s = "c:\test\testfile.txt"
MsgBox viaSplit(s)
MsgBox viaInStrRev(s)
MsgBox viaFileSystemObject(s)
MsgBox viaRegEx(s)
End Sub
Private Function viaSplit(ByVal s As String) As String
viaSplit = Split(Split(s, "\")(UBound(Split(s, "\"))), ".")(0)
End Function
Private Function viaInStrRev(ByVal s As String) As String
viaInStrRev = Mid(s, InStrRev(s, "\") + 1, InStrRev(s, ".") - (InStrRev(s, "\") + 1))
End Function
Private Function viaFileSystemObject(ByVal s As String) As String
With CreateObject("Scripting.FileSystemObject")
If .FileExists(s) Then
viaFileSystemObject = Replace(.GetFileName(s), "." & .GetExtensionName(s), vbNullString)
End If
End With
End Function
Private Function viaRegEx(ByVal s As String) As String
Dim v As Object
With CreateObject("VBScript.RegExp")
.Pattern = "^(.*)\\(.*)(\..*)$"
.Global = True
Set v = .Execute(s)
viaRegEx = v.item(0).SubMatches(1)
End With
End Function
|