Avatar billede peanut2000 Nybegynder
08. december 2004 - 21:09 Der er 4 kommentarer og
1 løsning

For mange url-adresser bliver tilføjet

Hej har et program som går ind og læser url fra to inputboxe, hvor den går ind og ændre tilføjer url til urlén, men den tilføjer lidt for meget.

Her er hvad den skriver når jeg har kørt programmet igennem:

<a href="http://www.jan.dk/goto.asp?path=http%3A%2F%2Fwww%2Ecompumail%2Edk%2Fhttp%3A%2F%2Fwww%2Ecompumail%2Edk%2Fnp%5Fdk%2Findex%2Ehtml">

Denne del efter = er for meget http%3A%2F%2Fwww%2Ecompumail%2Edk%2F, men det sidste er rigtig nok. Mit spg går på hvor fejlen ligger i følgende kode:

i = InStr(1, webp, "href=", CompareMethod.Text)
        While i > 0
            If i > 0 Then
                If InStr(i + Len("href="), webp, " ", CompareMethod.Text) < InStr(i + Len("href="), webp, ">", CompareMethod.Text) Then
                    j = InStr(i + Len("href="), webp, " ", CompareMethod.Text)
                Else
                    j = InStr(i + Len("href="), webp, ">", CompareMethod.Text)
                End If
            End If

            If j > 0 Then

                goUrl = Replace(Mid(webp, i + Len("href="), j - i - Len("href=")), """", "")
                goUrl = Replace(goUrl, " ", "")
                goUrl = Replace(goUrl, "'", "")

                If Not InStr(url & "/", Replace(goUrl, "http://", ""), CompareMethod.Text) > 0 Then
                    goUrl = Replace(Replace(url & "/" & goUrl, "//", "/"), "//", "/")
                End If

                goUrl = Replace(goUrl, "////", "//")
               
                goUrl = Replace(Replace(Replace(projecturl & "/goto.asp?path=", "//", "/"), "//", "/"), "http:/", "http://") & URLEncode(Replace(Replace(goUrl, "//", "/"), "http:/", "http://"))

                webp = Mid(webp, 1, i - 1) & "href=""" & goUrl & """" & Mid(webp, j)

            End If
            i = InStr(i + 1, webp, "href=", CompareMethod.Text)
        End While

        setLinks = webp

Håber i kan hjælpe
Avatar billede arne_v Ekspert
08. december 2004 - 21:49 #1
Jeg kan slet ikke gennemskue den kode.

Men kan du forklare hvad input og output skal være - så kunne jeg muligvis finde en anden
måde at gøre det på.
Avatar billede peanut2000 Nybegynder
09. december 2004 - 15:31 #2
det der sker er at den finder ud fra href urladresser og tilføjer noget foran. og laver specialtegnene om til aschii. Men har fundet ud af at koden ikke er forkert, den skal bare tjekke på om urlén starter med http:// og hvis den gør skal den springe den over.

Her finder den længden af urlén og får fat i urlen
goUrl = Replace(Mid(webp, i + Len("href="), j - i - Len
("href=")), """", "")

Så hvis jeg kunne få noget kode her som gør at den går ud af løkken og videre til næste url hvis den indeholder http://
Avatar billede peanut2000 Nybegynder
09. december 2004 - 15:58 #3
den burde faktisk tjekke det efter denne linie:
i = InStr(1, webp, "href=", CompareMethod.Text)

Her ved jeg hvilken plads urlén starter fra, så nu skal jeg bare thekke om den starter med http:// og hvis den gør skal den ikke gå ind i while sætningen.
Avatar billede arne_v Ekspert
09. december 2004 - 21:04 #4
Jeg tror stadig at den kode kunne omskrives.

Hvis du giver et simpelt eksempel på input og output så vil jeg gerne forsøge
at lave noget kode.
Avatar billede peanut2000 Nybegynder
15. juli 2005 - 23:41 #5
Har fundet på en hel anden måde at løse det på
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester