Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Veckans Problem!

Postades av 2001-05-01 02:49:00 - Johan Strömbom, i forum visual basic - allmänt, Tråden har 4 Kommentarer och lästs av 572 personer

Hej!

Jag skulle vilja hämta ut alla länkar från en html sida och lägga de i en sträng ungefär så här:

sträng = "http://www.sida1.com/;http://www.sida2.com/;"

alla sidorna måste börja med http, men det får även ligga sidor med underkataloger i strängen:

sträng = "http://www.sida1.com/underkatalog1;http://www.sida2.com/underkatalog1/underkatalog2;"


nu är det ju så att olika html programmerare/designers/utvecklare (kalla det vad ni vill) gör länkar på olika sätt:

<a href=http://www.sidan.com>
<a href='http://www.sidan.com'>
<a href="http://www.sidan.com">
<a href =http://www.sidan.com>
<a href ='http://www.sidan.com'>
<a href ="http://www.sidan.com">
<a href =http://www.sidan.com>
<a href ='http://www.sidan.com'>
<a href ="http://www.sidan.com">
<a href = http://www.sidan.com>
<a href = 'http://www.sidan.com'>
<a href = "http://www.sidan.com">

sen kan man ju även hänvisa till en underkatalog på den egna servern:
<a href = "/hej.html">
och då ska det se ut så här i strängen (serveradressen har jag i en variabel från början men man måste ju veta när och om den ska infogas): http://www.egenserver.com/hej.html

ja det finns massor av varianter. Därför undrar jag om det finns något smidigt sätt att få ut alla länkar ur html dokumentet? Annars skulle det vara snällt om någon kunde berätta hur jag ska angripa problemet. Lite exempelkod skulle vara jättesnällt!

Jag började lite men min kod kan inte ta ut alla de här varianterna, se kod nedan. Fast den är kass så titta ändå inte på den =)

/Johan



Do Until InStr(1, tmpAktivSida, "href") = 0

tmpAktivSida = Mid(tmpAktivSida, InStr(1, tmpAktivSida, "href") + 4)
If InStr(1, tmpAktivSida, "http") < 15 Then
tmpAktivSida = Mid(tmpAktivSida, InStr(1, tmpAktivSida, "http://") + 7)
If (InStr(1, tmpAktivSida, Chr(34)) < InStr(1, tmpAktivSida, "'", vbBinaryCompare) And InStr(1, tmpAktivSida, Chr(34), vbBinaryCompare) <> 0) Or InStr(1, tmpAktivSida, "'", vbBinaryCompare) = 0 Then
If (InStr(1, tmpAktivSida, Chr(34)) < InStr(1, tmpAktivSida, ">", vbBinaryCompare) And InStr(1, tmpAktivSida, Chr(34), vbBinaryCompare) <> 0) Or InStr(1, tmpAktivSida, ">", vbBinaryCompare) = 0 Then
' avslutar med nöff nöff7
Länkar = Länkar & "http://" & Mid(tmpAktivSida, 1, InStr(1, tmpAktivSida, Chr(34)) - 1) & ";"
Else
' avslutar med >
Länkar = Länkar & "http://" & Mid(tmpAktivSida, 1, InStr(1, tmpAktivSida, ">") - 1) & ";"
End If
Else
If (InStr(1, tmpAktivSida, "'") < InStr(1, tmpAktivSida, ">", vbBinaryCompare) And InStr(1, tmpAktivSida, "'", vbBinaryCompare) <> 0) Or InStr(1, tmpAktivSida, ">", vbBinaryCompare) = 0 Then
' avslutar med '
Länkar = Länkar & "http://" & Mid(tmpAktivSida, 1, InStr(1, tmpAktivSida, "'") - 1) & ";"
Else
' avslutar med >
Länkar = Länkar & "http://" & Mid(tmpAktivSida, 1, InStr(1, tmpAktivSida, ">") - 1) & ";"
End If
End If
Else

End If


Svara

Sv: Nattens Problem!

Postades av 2001-05-01 03:19:00 - Håkan Wennerberg

Knappade ihop följande lilla kod som fixar dina kombinationer plus om man inte har nån domän angiven (root).

Public Function GetUrl(ByVal vText As String, ByVal vRoot As String) As String

Dim varA As Variant
Dim strHref As String
Dim lngIterator As Long

' Se till att href= sitter ihop.
vText = Replace(vText, "href =", "href=")

' Splitta strängen ifall target osv. finns med i a-taggen.
varA = Split(vText, " ")

' Plocka ut href-attributet.
For lngIterator = 0 To UBound(varA)
If LCase(Left(varA(lngIterator), 4)) = "href" Then
strHref = varA(lngIterator)
Exit For
End If
Next lngIterator

' Plocka bort href=.
strHref = Mid(strHref, 6)

' Plocka bort ev >.
If Right(strHref, 1) = ">" Then strHref = Left(strHref, Len(strHref) - 1)

' Plocka bort " och '.
strHref = Replace(strHref, """", "")
strHref = Replace(strHref, "'", "")

' Lägg till root om den saknas.
If LCase(Left(strHref, 4)) <> "http" And LCase(Left(strHref, 3)) <> "ftp" Then
If Left(strHref, 1) = "/" Then
strHref = vRoot & strHref
Else
strHref = vRoot & "/" & strHref
End If
End If

GetUrl = strHref

End Function


Du anropar den med root attributet utan avslutande slash.

List1.AddItem GetUrl("<a href=""http://www.sidan.com"">", "http://wennerberg.nu")
List1.AddItem GetUrl("<a href =/blaha.asp>", "http://wennerberg.nu")
List1.AddItem GetUrl("<a href ='minsida.asp'>", "http://wennerberg.nu")


Mvh,
Håkan Wennerberg
http://wennerberg.nu/


Svara

Sv: Nattens Problem!

Postades av 2001-05-01 03:30:00 - Johan Strömbom

Tackar så mycket!

Svar direkt, kl 3 på natten dessutom!

Nu fungerar mitt program ännu bättre, jag håller nämligen på att ladda ner hela internet... jag började på www.expressen.se och har fått hem några tusen sidor i min databas som bara växer!

Med Wennerbergs kod får jag med många fler länkar än med koden jag använde så jag ska nog rensa databasen och börja om från början!

Om någon vill ha programmet så är det bara att säga till, det är förhoppningsvis helt klart vid gryningen! Ska bara fixa så att den inte laddar hem alla bilder och musikfiler den kommer över, man ska inte behöva skippa dem manuellt...

/Johan


Svara

Sv: Nattens Problem!

Postades av 2001-05-01 04:00:00 - Johan Strömbom

Ah! Fick just en strålande idé!

Jag ska sälja internet på CD-rom när jag har laddat hem det.

"Köp Internet på CD-rom och släng ditt gamla modem! Snabbare än fiber och inga månadsavgifter!"

Nä nu är det verkligen sent, gonatt!

/Johan


Svara

Sv: Nattens Problem!

Postades av 2001-05-01 15:43:00 - Dan Persson

hmm, är inte Internet lite för stort för att sälja på CD-rommer? Jag skulle tipsa om DVD.... :-)

MvH Dan "DaPe" Persson


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 619
27 953
271 709
474
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies