2008-11-14 2 views
1

На днях кто-то отправил здесь небольшую функцию, которая разделила полный путь файла на несколько частей, которые выглядели так:vb6 Как отредактировать это, чтобы расширение было только до 3 символов (синтаксический анализ строк)

Function BreakDown(Full As String, FName As String, PName As String, Ext As String) As Integer 
If Full = "" Then 
BreakDown = False 
Exit Function 
End If 
If InStr(Full, "\") Then 
FName = Full 
PName = "" 
Sloc% = InStr(FName, "\") 
Do While Sloc% <> 0 
    PName = PName + Left$(FName, Sloc%) 
    FName = Mid$(FName, Sloc% + 1) 
    Sloc% = InStr(FName, "\") 
Loop 
Else 
PName = "" 
FName = Full 
End If 
Dot% = InStr(Full, ".") 
If Dot% <> 0 Then 
Ext = Mid$(Full, Dot%) 
Else 
Ext = "" 
End If 
BreakDown = True 

End Function 

Однако, если линия продолжается до этой точки, она считает ее частью расширения, есть ли все равно, чтобы сделать это только числом до 3 символов после последнего периода в строке?

ответ

1
Dot% = InStrRev(Full, ".") ' First . from end of string 
If Dot% <> 0 Then 
Ext = Mid$(Full, Dot%, 3) 
Else 
Ext = "" 
End If 

Синтаксис Mid $: Середина (строка, начало [, длина])

0

Если вы просто пустые символы, то просто добавьте это в качестве первой линии

Full = Trim(Full) 

Если у вас есть другие символы, то

Изменение:

Ext = Mid$(Full, Dot%) 

в:

Ext = Mid$(Full, Dot%, 3)