Avatar billede kalaharikid Nybegynder
02. september 2002 - 20:35 Der er 5 kommentarer og
1 løsning

Hilghlighte søgeord via webwizguide søgemaskine i ASP

Hej,

Jeg har brugt webwizguides søgemaskine i ASP til at lave en SiteSearch - Den Bruger FSO btw - http://www.webwizguide.com/asp/sample_scripts/site_search_script.asp - Drømmen er nu at kunne highlighte ordet man søgte på ude på den side hvor det blev fundet - Altså noget med Request.QueryString("search") - Har prøvet at bruge en klassisk highlighter men den vil altså ikke - Gode ideer ønskes !

Kalaharikid

NB : Spørgsmålet er flyttet fra Programmeringsopgaver -

Her er koden jeg har prøvet med  :

<%
Function Highlight(strText, strFind, strBefore, strAfter)
    Dim nPos
    Dim nLen
    Dim nLenAll
    Dim kaj
    nLen = Len(strFind)
    nLenAll = nLen + Len(strBefore) + Len(strAfter) + 1
kaj = Request.QueryString("search")
    Highlight = strText

    If nLen > 0 And Len(Highlight) > 0 Then
        nPos = InStr(1, Highlight, strFind, 1)
        Do While nPos > 0
            Highlight = Left(Highlight, nPos - 1) & _
                strBefore & Mid(Highlight, nPos, nLen) & strAfter & _
                Mid(Highlight, nPos + nLen)

            nPos = InStr(nPos + nLenAll, Highlight, strFind, 1)
        Loop
    End If
End Function
Response.Write Highlight(myText, kaj, "<font color=blue>", "</font>")
%>
Avatar billede kalaharikid Nybegynder
02. september 2002 - 20:37 #1
åhja - Response.Write skulle hedde :

Response.Write Highlight(strText, kaj, "<font color=blue>", "</font>")
%>
Avatar billede eagleeye Praktikant
02. september 2002 - 22:04 #2
Prøv med:


Response.Write Highlight(strText, "kaj", "<font color=blue>", "</font>")
Avatar billede kalaharikid Nybegynder
02. september 2002 - 22:26 #3
Nå, nu kan jeg se at problemet er at den gennemsøgte tekst ikke er en streng da det er en slags sitecrawler - Kan man sige at strText skal være lig med alt det der eks. står i body ?
Avatar billede eagleeye Praktikant
02. september 2002 - 22:33 #4
Ja så skal du lave et script som klipper fra <body ..> til </body> tagen. og kigger det ind i strText...
noget i stil med:

strFile = ..hele filens indhold..

iStart = InStr(1, strFile, "<body")
if iStart > 0 then
  iStart = InStr(iStart+1, strFile, ">") 'Finder slut på body tagen
  iSlut = InStr(iStart+1, strFile, "</body")
  if iStart > 0 AND iSlut > 0 then
    'strText er lig det mellem body tagsne
    strText = Mid(strFile,iStart,iSlut-iStart) 
  end if
end if
if strText = "" then strText = strFile


'Så kan functionen kaldes:
Response.Write Highlight(myText, kaj, "<font color=blue>", "</font>")
Avatar billede kalaharikid Nybegynder
03. september 2002 - 00:50 #5
Ser fint ud, ørneøje, 2 ting jeg blot ville spørge ind til :

strFile = ..hele filens indhold.. (er en kommentar, ikk'?)
if strText = "" then strText = strFile (hvor skal den være og skal den ikke lukkes ?)

"Ka' de li' Ål i Kalahari ?"
Avatar billede eagleeye Praktikant
03. september 2002 - 17:18 #6
strFile = ..hele filens indhold.. (er en kommentar, ikk'?)  : Ja det var tanken at hele indhodlet af filen skal ind i strFile vha FileSystemObject.


if strText = "" then strText = strFile (hvor skal den være og skal den ikke lukkes ?)
Man kan lave en if sætninge sådan her:
if xx=yy then
...
else
...
end if

Hvis der så kun er en linie inde i then delen og der ikke er en else del så kan man skrive if sætningen på en linie:
if xx=yy then ...
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