Buchempfehlung
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
"Der" Petzold, das über 1000 Seiten starke Standardwerk zum Win32-API - besonders nützlich u. a. bei der GUI-Programmierung in FreeBASIC! [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Code-Beispiel

Code-Beispiele » Internet und Netzwerke

URL in Bestandteile zerlegen

Lizenz:Erster Autor:Letzte Bearbeitung:
k. A.MitgliedThePuppetMaster 22.01.2008

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
  Bearbeiten Bearbeiten  

  Versionen Versionen