Avatar billede fun22 Nybegynder
21. november 2004 - 11:04 Der er 41 kommentarer og
2 løsninger

finde enkelte or i en streng

Hej

Hvis jeg har en string der indeholder en masse links, eks.:

bla bla bla bla...
<a href="image1.jpg">billede 1</a>
<a href="image2.jpg">billede 2</a>
...
bla bla

Hvordan får jeg så kun det der står i mellem "" tagsne. Så jeg får image1.jpg?

Det skal så være sådan at jeg kan udskrive teksten, så overstående bliver til:

image1.jpg
image2.jpg

Håber i forstår.. ellers må i lige sige til..
Avatar billede fun22 Nybegynder
21. november 2004 - 11:43 #1
Er der ingen der har et bud??
Avatar billede curriculum Nybegynder
21. november 2004 - 14:23 #2
her er lidt kode der kan finde ud af om der eksisterer et billede. For at sikre koden helt kan du også lave en FileExists...

Dim sImage, aImage : aImage = SPLIT(<link>,Chr(39))
If IsArray(aImage) Then
If InStr(aImage(1),".jpg") Then
  sImage = aImage(1)
End If
End If

her må du
Avatar billede fun22 Nybegynder
21. november 2004 - 14:34 #3
hvordan virker det lige helt præsis?
Avatar billede curriculum Nybegynder
21. november 2004 - 14:44 #4
den kode jeg gav dig før finder kun et billede, hvis du vil finde flere billeder i samme streng, må du loope gennem hele strengen...

!NB chr(39) skal være chr(34) (for gåseøjne) sorry..

aImage = SPLIT(<billede streng>,Chr(34))
If IsArray(aImage) Then
  For i=0 TO UBound(aImage)
    If InStr(aImage(i+1),".jpg") Then
      'har fundet et billede
      'her leder metoden efter .jpg efter gåseøjne
    End If
  Next
End If

koden kan også laves med regular expressions, men den kode har jeg ikke i fingerne lige nu...
Avatar billede fun22 Nybegynder
21. november 2004 - 14:48 #5
når den har fundet alle billederne stopper den med en fejl:

Microsoft VBScript runtime error '800a0009'

Subscript out of range: '[number: 69]'

/projekter/picview/pic.asp, line 11


OG er det muligt at får den til at skrive navnet på billedet? eks. image1.jpg?
Avatar billede fun22 Nybegynder
21. november 2004 - 14:59 #6
Fejlen er løst... Der skulle ikke stå +1 efter i...

Men kan man det med at få filnavnet?
Avatar billede curriculum Nybegynder
21. november 2004 - 16:27 #7
billederne burde være i det enkelte aImage(i)..
prøv og response.write aImag(i)..
Avatar billede curriculum Nybegynder
21. november 2004 - 16:28 #8
stavefejl: response.write aImage(i) ... selvfølgelig
Avatar billede fun22 Nybegynder
21. november 2004 - 16:35 #9
så kommer det til at se sådan her ud:

>41.jpg 30-May-2004 01:03 421K 1 billede fundet Blue%20Eye5092.jpg

Det er denne her side jeg henter linksne fra:
http://www.justlikeed.net/StripDir/demodir/
Avatar billede fun22 Nybegynder
21. november 2004 - 16:36 #10
du kan se her hvordan det ser ud:
http://jtponline.dk/projekter/picview/pic.asp
Avatar billede curriculum Nybegynder
21. november 2004 - 20:52 #11
jeg laver lige koden... for at finde billederne...
Avatar billede curriculum Nybegynder
21. november 2004 - 20:54 #12
send mig lige eksempel strengen !
Avatar billede fun22 Nybegynder
21. november 2004 - 20:57 #13
Set oServerXMLHTTPRequest=Server.CreateObject("Msxml2.ServerXMLHTTP")
URL = "http://www.justlikeed.net/StripDir/demodir/"
oServerXMLHTTPRequest.open "GET", URL, False
oServerXMLHTTPRequest.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT)"
oServerXMLHTTPRequest.Send

og selve strngen er:

oServerXMLHTTPRequest.responseText
Avatar billede curriculum Nybegynder
21. november 2004 - 22:11 #14
Den her virker fint for jpg og png billeder, men når jeg adder gif giver den dubletter af forskellige billeder.. arbejder videre

Set oServerXMLHTTPRequest=Server.CreateObject("Msxml2.ServerXMLHTTP")
URL = "http://www.justlikeed.net/StripDir/demodir/"
oServerXMLHTTPRequest.open "GET", URL, False
oServerXMLHTTPRequest.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT)"
oServerXMLHTTPRequest.Send

sLinks = oServerXMLHTTPRequest.responseText

aImage = SPLIT(sLinks,"href=")
If IsArray(aImage) Then
    For i=0 TO UBound(aImage)
        If InStr(aImage(i),".jpg")>0 Then
            sImage = sImage & GetImage(aImage(i)) & "<br>"
        End If
        If InStr(aImage(i),".png")>0 Then
            sImage = sImage & GetImage(aImage(i)) & "<br>"
        End If
        If InStr(aImage(i),".gif")>0 Then
            sImage = sImage & GetImage(aImage(i)) & "<br>"
        End If
    Next
End If
Response.Write sImage

Function GetImage(byval sImage)
    aGetImage = SPLIT(sImage,Chr(34))
    If IsArray(aGetImage) Then
        GetImage = aGetImage(1)
    End If
End Function
Avatar billede curriculum Nybegynder
21. november 2004 - 22:37 #15
Sådan:

Set oServerXMLHTTPRequest=Server.CreateObject("Msxml2.ServerXMLHTTP")
URL = "http://www.justlikeed.net/StripDir/demodir/"
oServerXMLHTTPRequest.open "GET", URL, False
oServerXMLHTTPRequest.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT)"
oServerXMLHTTPRequest.Send

sLinks = oServerXMLHTTPRequest.responseText

aBody = SPLIT(sLinks,"<body>")
sLinks = aBody(1)
aBody = SPLIT(sLinks,"</body>")
sLinks = aBody(0)

sLinks = Replace(sLinks,Chr(34),Chr(32))
aImage = SPLIT(sLinks,"href=")
If IsArray(aImage) Then
    For i=0 TO UBound(aImage)
        aLink = SPLIT(aImage(i),">")
        If IsArray(aLink) Then
            If InStr(aLink(0),".") Then
                sImage = sImage & Replace(GetImage(aLink(0)),"%20",Chr(32)) & "<br>"
            End If
        End If
    Next
End If
Response.Write sImage

Function GetImage(byval sImage)
    aGetImage = SPLIT(sImage,Chr(32))
    If IsArray(aGetImage) Then
        GetImage = aGetImage(1)
    End If
End Function
Avatar billede fun22 Nybegynder
22. november 2004 - 18:00 #16
Det er sådan i orden... Takker for hjælpen.. har givet dig lidt karma som ekstra tak ;)
Avatar billede fun22 Nybegynder
22. november 2004 - 18:08 #17
Lige et hurtigt tillægs spørgsmål.. Er det muligt at lave paging på det? så man kan få vist eks 10 billeder pr side?
Avatar billede curriculum Nybegynder
22. november 2004 - 18:27 #18
Ja det kan du godt...
Jeg ville insert'e billedenavnene i en db, og siden er det intet problem at page...
Avatar billede fun22 Nybegynder
22. november 2004 - 18:28 #19
kan det ikke lade sig gøre uden at skulle smide dem i en db først?
Avatar billede curriculum Nybegynder
22. november 2004 - 18:38 #20
jo ved at putte dem i en array (aPagImage)..

Dim aPagImage

For i=0 TO UBound(aImage)
    aLink = SPLIT(aImage(i),">")
        If IsArray(aLink) Then
            If InStr(aLink(0),".") Then
                sImage = sImage & Replace(GetImage(aLink(0)),"%20",Chr(32)) & "<br>"
        aPagImage & i = Replace(GetImage(aLink(0)),"%20",Chr(32))
            End If
        End If
Next
Avatar billede curriculum Nybegynder
22. november 2004 - 18:39 #21
Sådan her skal det nok være...

Dim aPagImage

For i=0 TO UBound(aImage)
    aLink = SPLIT(aImage(i),">")
        If IsArray(aLink) Then
            If InStr(aLink(0),".") Then
                sImage = sImage & Replace(GetImage(aLink(0)),"%20",Chr(32)) & "<br>"
        aPagImage(i) = Replace(GetImage(aLink(0)),"%20",Chr(32))
            End If
        End If
Next
Avatar billede fun22 Nybegynder
22. november 2004 - 18:58 #22
okay.. takker mange gange... ;)
Avatar billede fun22 Nybegynder
22. november 2004 - 19:09 #23
nogen gange kommer den med en fejl i denne linie:

sLinks = aBody(1)

Microsoft VBScript runtime error '800a0009'
Subscript out of range: '[number: 1]'
Avatar billede curriculum Nybegynder
22. november 2004 - 20:08 #24
Æav et check mere...

If InStr(sLinks,"<body>") Then
aBody = SPLIT(sLinks,"<body>")
sLinks = aBody(1)
End If
If InStr(sLinks,"</body>") Then
aBody = SPLIT(sLinks,"</body>")
sLinks = aBody(0)
End If
Avatar billede curriculum Nybegynder
22. november 2004 - 20:10 #25
Disse to split metoder er kun for at fjerne udnødige billeder at forekomme i strengen...
Avatar billede fun22 Nybegynder
22. november 2004 - 20:15 #26
hmm...

Nu er fejlen væk, men den viser kun et billede, og det billede den viser kan den ikke vise... der hvor billed navnet skulle have været står der "html"
Avatar billede curriculum Nybegynder
22. november 2004 - 20:24 #27
har du en anden side du søger på nu ??
Avatar billede fun22 Nybegynder
22. november 2004 - 20:26 #28
ja.. det er jo ikke den samme hele tiden.. Men det er den samme index side på alle siderne.. Det er bare forskellige filnavne...
Avatar billede fun22 Nybegynder
22. november 2004 - 20:29 #29
kan det være fordi at der på nogen af siderne bliver brugt tabeller i index filen?
Avatar billede curriculum Nybegynder
22. november 2004 - 20:36 #30
giv mig et eksempel på en side med fejl..
Avatar billede fun22 Nybegynder
22. november 2004 - 20:39 #31
hvis du bruger denne url i stedet for den anden:
http://jtponline.dk/eksperten/563472/liste.asp
Avatar billede curriculum Nybegynder
22. november 2004 - 21:02 #32
problemet er at UBound(aImage) ikke finder alle "href="...
løser det lige
Avatar billede curriculum Nybegynder
22. november 2004 - 21:14 #33
Set oServerXMLHTTPRequest=Server.CreateObject("Msxml2.ServerXMLHTTP")
'URL = "http://www.justlikeed.net/StripDir/demodir/"
URL = "http://jtponline.dk/eksperten/563472/liste.asp"
oServerXMLHTTPRequest.open "GET", URL, False
oServerXMLHTTPRequest.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT)"
oServerXMLHTTPRequest.Send

sLinks = oServerXMLHTTPRequest.responseText

If InStr(sLinks,"<body>") Then
    aBody = SPLIT(sLinks,"<body>")
    sLinks = aBody(1)
End If
If InStr(sLinks,"</body>") Then
    aBody = SPLIT(sLinks,"</body>")
    sLinks = aBody(0)
End If

Response.Write WebSite(UCase(sLinks))

Function WebSite(byval sLinks)
    Dim aImage, aLink, i
    sLinks = Replace(sLinks,Chr(34),Chr(32))
    aImage = SPLIT(sLinks,"HREF=")
    If IsArray(aImage) Then
        For i=0 TO UBound(aImage)
            aLink = SPLIT(aImage(i),">")
            If IsArray(aLink) Then
                If InStr(aLink(0),".") Then
                    If Len(aLink(0))>0 Then
                        sImage = sImage & Replace(GetImage(aLink(0)),"%20",Chr(32)) & "<br>"
                    End If
                End If
            End If
        Next
    End If
    WebSite = sImage
End Function
   
Function GetImage(byval sImage)
    aGetImage = SPLIT(sImage,Chr(32))
    If IsArray(aGetImage) Then
        If InStr(aGetImage(1),".") Then
            GetImage = aGetImage(1)
        End If
    End If
End Function
Avatar billede curriculum Nybegynder
22. november 2004 - 21:16 #34
Der skulle lige en UCase(sLinks) til at løse problemet...
Den UCase driller så ofte, så nu gør jeg det næsten altid, at sørge for at UCase, når jeg laver en If statement der validerer en streng...
Avatar billede fun22 Nybegynder
23. november 2004 - 17:40 #35
så giver det bare problemer når der man skal hente billedet fra adressen.. For hvis der det i linket står med store bugstaver så virker det jo ikke når det står med småt... Den skal jo både kunne om det er store eller små bugstaver eller begge dele...
Avatar billede curriculum Nybegynder
23. november 2004 - 21:54 #36
Den burde ikke klage over, at ordet er med upper case, fordi VB script er ikke case sensitiv... så den forstår jeg ikke helt, hvorfor du ikke kan hente billederne..
Avatar billede fun22 Nybegynder
24. november 2004 - 20:35 #37
dit script finde det eks:

IMAGE1.JPG

Hvis det så ligger på serveren som:

Image1.jpg

Så kan den ikke hente det.. Der er jo serveren der er case sensitiv.....
Avatar billede curriculum Nybegynder
25. november 2004 - 13:00 #38
Lyder sært, så er det ikke en Windows server, hvor billederne ligger, fordi Windows har ingen case sensitiv validering...
Så må vi bakke lidt i koden, og undlade at upper case websitet, men istedet lave flere kobinationer af "aImage = SPLIT(sLinks,"HREF=")" valideringen, så som Href, href, osv...
Avatar billede fun22 Nybegynder
25. november 2004 - 17:19 #39
Kan jeg ikke få dig til at vise hvordan det gøres? Du kan godt få flere points hvis det er det...
Avatar billede curriculum Nybegynder
25. november 2004 - 19:52 #40
Det er ikke pointerne jeg er efter, nogen hjæpler mig engang imellem, og jeg hjælper andre, fungerer fint :) Jeg vil gerne hjælpe dig at løse problemet.
Jeg har ikke helt tænkt problemet igennem, men jeg kunne godt tænke mig at problemet blev løst med at fange billedes position og længde i strengen, og derefter hente dem ud fra den orginale streng i orginal upper og lower case. Jeg vender tilbage i morgen, med en forhåbentlig løsning..
Avatar billede fun22 Nybegynder
25. november 2004 - 20:40 #41
okay.. takker mange gang... Sig til hvis der er noget jeg kan hjælpe dig med...
Avatar billede fun22 Nybegynder
29. november 2004 - 20:04 #42
Hvordan går det??
Avatar billede fun22 Nybegynder
07. december 2004 - 19:08 #43
er du der??
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