Extract file extension: Difference between revisions
Content added Content deleted
(Added Rust) |
(→=={{header|Visual Basic}}==: added Visual Basic example) |
||
Line 1,651: | Line 1,651: | ||
NAME: /etc/pam.d/login |
NAME: /etc/pam.d/login |
||
EXT: <></pre> |
EXT: <></pre> |
||
=={{header|Visual Basic}}== |
|||
{{works with|Visual Basic|6}} |
|||
<lang vb>Option Explicit |
|||
'----------------------------------------------------------------- |
|||
Function ExtractFileExtension(ByVal Filename As String) As String |
|||
Dim i As Long |
|||
Dim s As String |
|||
i = InStrRev(Filename, ".") |
|||
If i Then |
|||
If i < Len(Filename) Then |
|||
s = Mid$(Filename, i) |
|||
For i = 2 To Len(s) |
|||
Select Case Mid$(s, i, 1) |
|||
Case "A" To "Z", "a" To "z", "0" To "9" |
|||
'these characters are OK in an extension; continue |
|||
Case Else |
|||
'this one is not OK in an extension |
|||
Exit Function |
|||
End Select |
|||
Next i |
|||
ExtractFileExtension = s |
|||
End If |
|||
End If |
|||
End Function |
|||
'----------------------------------------------------------------- |
|||
Sub Main() |
|||
Dim s As String |
|||
s = "http://example.com/download.tar.gz" |
|||
Debug.Assert ExtractFileExtension(s) = ".gz" |
|||
s = "CharacterModel.3DS" |
|||
Debug.Assert ExtractFileExtension(s) = ".3DS" |
|||
s = ".desktop" |
|||
Debug.Assert ExtractFileExtension(s) = ".desktop" |
|||
s = "document" |
|||
Debug.Assert ExtractFileExtension(s) = "" |
|||
s = "document.txt_backup" |
|||
Debug.Assert ExtractFileExtension(s) = "" |
|||
s = "/etc/pam.d/login" |
|||
Debug.Assert ExtractFileExtension(s) = "" |
|||
s = "desktop." |
|||
Debug.Assert ExtractFileExtension(s) = "" |
|||
s = "a.~.c" |
|||
Debug.Assert ExtractFileExtension(s) = ".c" |
|||
s = "a.b.~" |
|||
Debug.Assert ExtractFileExtension(s) = "" |
|||
s = "a.b.1~2" |
|||
Debug.Assert ExtractFileExtension(s) = "" |
|||
End Sub</lang> |
|||
=={{header|zkl}}== |
=={{header|zkl}}== |