Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
748to752
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
748to752
748to752
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Eine Programmiertechnische Herausforderung

Eine Programmiertechnische Herausforderung
29.03.2006 22:28:59
Martin
Liebe Mitglieder,
dies hier stellt eine extreme Herausforderung dar.
Dabei ist das Problem sehr simpel:
Ich habe einen Linkchecker, der rekursiv checken kann.
- Das ist realisiert.
Nehmen wir zum Beispiel einen Link, den der Checker aus dem Quelltext einer Seite extrahiert:
../../style/red.css
Und außerdem steht mir die Quelladresse zur Verfügung:
"http://www.test.de/gardens/winter/usingredstyle.htm"
Jetzt sollen also zwei Directories höher gegangen werden:
"http://www.test.de/style/red.css"
Am Besten sollte dies über eine Function realisiert werden.
Ergebnis = MakeAbsoluteLink("http://www.test.de/gardens/winter/usingredstyle.htm", "../../style/red.css")
Ergebnis wird dann so lauten:
"http://www.test.de/style/red.css"
Die Function soll aber auch Link-Stücke wie "/styler/box.php" oder "test.php" bearbeiten können.
Kann mir jemand Hilfestellung bezüglich der Linkumwandlung geben.
Könnte mir jemand helfen?

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eine Programmiertechnische Herausforderung
29.03.2006 23:55:42
Ramses
Hallo
Also eine Herausforderung, grundsätzlich :-), ist das ja nicht gerade.
Was meinst du mit:
"...Die Function soll aber auch Link-Stücke wie "/styler/box.php" oder "test.php" bearbeiten können...."
Verstehe ich nicht.
Mal einen Ansatz:
Entweder mit "InstRev" den String von hinten her zerlegen, oder mit "Split" den String in ein Array aufbrechen, und mit einer Schleife bis zwei Stufen höher wieder zusammenbauen
Sub Reduce_Link()
    Dim linkarr() As String, tmpStr As String
    Dim i As Integer, stepUp As Integer
    '2 Stufen höher
    stepUp = 2
    linkarr = Split("http://www.office.gmxhome.de/downloads/inhalt.htm", "/", -1)
    For i = 0 To UBound(linkarr)
        Debug.Print linkarr(i)
    Next i
    'und zusammenbauen
    tmpStr = linkarr(0) & "/"
    For i = 1 To UBound(linkarr) - stepUp
        tmpStr = tmpStr & "/" & linkarr(i)
    Next i
    MsgBox tmpStr
End Sub


Gruss Rainer
Anzeige
AW: Eine Programmiertechnische Herausforderung
30.03.2006 10:06:56
Erich
Hallo Martin,
versuchs mal damit:
Function MakeAbsoluteLink$(ByVal bas$, ByVal rel$)
Dim ii%, jj%, dom$
ii = InStr(bas, "//")
jj = InStrRev(bas, "/")
If jj > ii + 1 Then bas = Left(bas, jj - 1)        ' bas ab letztem "/" abschneiden
jj = InStr(ii + 2, bas, "/")
If jj > 0 Then                                     ' bas in dom und bas aufteilen
dom = Left(bas, jj - 1)
bas = Mid(bas, jj + 1)
Else
dom = bas
bas = ""
End If
' bas und rel verarbeiten
Do
If Left(rel, 1) = "/" Then          ' root
MakeAbsoluteLink = dom & rel
Exit Function
ElseIf Left(rel, 3) = "../" Then    ' nach oben
rel = Mid(rel, 4)
ii = InStrRev(bas, "/")
If ii > 0 Then
bas = Left(bas, ii - 1)
ElseIf Len(bas) > 0 Then
bas = ""
Else
MakeAbsoluteLink = "<ungültiger Link>"
Exit Function
End If
ElseIf Left(rel, 2) = "./" Then     ' bas bleibt unverändert
rel = Mid(rel, 3)
Else
MakeAbsoluteLink = dom & "/" & bas & IIf(bas = "", "", "/") & rel
Exit Function
End If
Loop
End Function

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
TOLL:!
30.03.2006 15:39:18
Martin
Werd's gleich testen und Rückmeldung erstatten!!!
VTHANX
Marten
geschlossen bis zur Rückmeldung *g o.w.T.
30.03.2006 22:52:49
Reinhard

Gruß Reinhard ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige