Code-Beispiel
URL in Bestandteile zerlegen
Um eine URL zu zerlegen, kann man diese kleine Funktion anwenden. Sie wird z.B. in der TSNE_Extension genutzt, um die aufzurufende URL soweit aufzubereiten, damit Post, Benutzername, Passwort Datei usw. extrahiert werden können. Mit diesen Daten kann man anschliessend eine Verbindung zu einem Server herstellen, dem dann die entsprechenden Parameter mitgeteilt werden.
Auch im lokalen Bereich kann diese Funktion genutzt werden. So werden z.B. Pfadangaben in eine URL eingebettet, wenn sie im Browser aufgerufen wurde. Sieht dann z.B. so aus:
File://C:\bla\blub.foo
Wie dies zerlegt aussehen würde, kann man sich dann in dem unten angefügten Beispiel erarbeiten.
Function URL_Split(V_URL as String, ByRef B_Protocol as String, ByRef B_Host as String, ByRef B_Port as UShort = 0, ByRef B_Path as String = "", ByRef B_File as String = "", ByRef B_FileType as String = "", ByRef B_Username as String = "", ByRef B_Password as String = "") as Long
Dim XPos as UInteger
Dim D as String = V_URL
XPos = InStr(1, D, "://")
If XPos <= 0 Then Return 1
B_Protocol = lcase(mid(D, 1, XPos - 1))
D = Mid(D, XPos + 3)
XPos = InStr(1, D, "/")
If XPos > 0 Then
B_Host = Mid(D, 1, XPos - 1): B_Path = Mid(D, XPos + 1)
Else: B_Host = D
End If
XPos = InStr(1, B_Host, "@")
If XPos > 0 Then B_Username = Mid(B_Host, 1, XPos - 1): B_Host = Mid(B_Host, XPos + 1)
XPos = InStr(1, B_Host, ":")
If XPos > 0 Then B_Port = Val(Mid(B_Host, XPos + 1)): B_Host = Mid(B_Host, 1, XPos - 1)
XPos = InStr(1, B_Username, ":")
If XPos > 0 Then B_Password = Mid(B_Username, XPos + 1): B_Username = Mid(B_Username, 1, XPos - 1)
XPos = InStr(1, B_Path, "/")
If XPos > 0 Then
B_File = Mid(B_Path, XPos + 1): B_Path = Mid(B_Path, 1, XPos - 1)
Else: B_File = B_Path: B_Path = ""
End If
XPos = InStr(1, B_File, ".")
If XPos > 0 Then B_FileType = Mid(B_File, XPos + 1): B_File = Mid(B_File, 1, XPos - 1)
Return 0
End Function
Und so kann man das dann anweden.
Sub F_PrintURL(V_URL as String)
Dim BV as Long
Dim XProt as String
Dim XHost as String
Dim XPort as UShort
Dim XPath as String
Dim XFile as String
Dim XType as String
Dim XUser as String
Dim XPass as String
Print String(80, "-")
Print V_URL
BV = URL_Split(V_URL, XProt, XHost, XPort, XPath, XFile, XUser, XPass)
Print "OK: " & BV
Print XProt
Print Host
Print XHost
Print XPort
Print XPath
Print XFile
Print XUser
Print XPass
Print ""
End Sub
Print "Alle Parameter"
F_PrintURL("Protokoll://Username:Passwort@Host:80/Path/Datei.Type")
Print "Normaler HTTP"
F_PrintURL("Http://www.google.de/")
Print "Normaler HTTP mit Dateiangabe"
F_PrintURL("Http://www.google.de/index.html")
Print "Normaler FTP mit Username und Passwort"
F_PrintURL("Ftp://Nutzer:Pass@ftpDoanload.de/Irgendwas.exe/")
End
Zusätzliche Informationen und Funktionen |
|
|