Czasem zdarza się taka sytuacja, że w zmiennej mamy całą ścieżkę do pliku np. c:\katalog\podkatalog\plik.txt a chcemy wyciągnąć z tego ciągu znaków samą nazwę pliku tj. plik.txt. Jak to zrobić?
Najprościej jest wyciągnąć cały tekst po ostatnim znaku \
Funkcja InStrRev podaje pozycję ostatniego wystąpienia wskazanego podciągu w ciągu znaków. Jeśli funkcja zwróci wartość 0 to znaczy, że w ścieżce nie było ani jednego znaku \ czyli zmienna ze ścieżką albo jest pusta albo zawiera tylko nazwę pliku (bez ściezki). Jeśli funkcja ta zwróci wartość wyższą od 0 to za pomocą funkcji Mid należy wyciągnąć wszystkie znaki od wartości zwróconej przez tę funkcję powiększoną o 1 do końca. Oto przykładowy kod:
Function PobierzNazwePliku(Sciezka As String) As String
Dim Ret As String
Dim pos As Long
pos = InStrRev(Sciezka, "\")
If pos = 0 Then
Ret = Sciezka
Else
Ret = Mid(Sciezka, pos + 1)
End If
PobierzNazwePliku = Ret
End Function
Sub TestPobierzNazwePliku()
Dim Sciezka As String
Dim NazwaPliku As String
Sciezka = "c:\katalog\podkatalog\plik.txt"
NazwaPliku = PobierzNazwePliku(Sciezka)
MsgBox NazwaPliku, vbInformation
End Sub