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