/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Wildcard i søgestreng ?
Fra : Jakob Munck


Dato : 31-01-02 00:36

Jeg arbejder på en lille søgemaskine, der skal finde html-filer ud fra hvad
der står i deres head-sektion under metatags. Disse metatags kan f.eks. kan
se sådan ud:
.....
<META name="DESCRIPTION" content=" stole, skabe, kaminer, gardiner,
borde"></HEAD>

Koden, der anvender FileSystemObjektet, skal altså finde ud af om et af
brugeren valgt ord står i ovenstående tekststreng efter "content="" og før
"</HEAD>". Hvis man går ud fra at "%" betyder wildcard, altså et vilkårligt
antal uspecificerede karakterer, og mit formfelt hedder "SearchText" kunne
søgestrengen se sådan ud:

strSearchText = "content=" & "%" & Request("SearchText") & "%" & "</HEAD>"

Men det giver fejlmelding, for "%" betyder åbenbart - i denne sammenhæng -
ikke et vilkårligt antal uspecificerede karakterer. Men hvad er så den
rigtige kode for disse uspecificerede karakterer? Hvordan skal søgestrengen
så se ud?

v.h.
Jakob Munck



 
 
Jørn Andersen (31-01-2002)
Kommentar
Fra : Jørn Andersen


Dato : 31-01-02 00:59

On Thu, 31 Jan 2002 00:36:29 +0100, "Jakob Munck"
<jakob.munck@tdcadsl.dk> wrote:

Hej Jakob,

>Koden, der anvender FileSystemObjektet, skal altså finde ud af om et af
>brugeren valgt ord står i ovenstående tekststreng efter "content="" og før
>"</HEAD>". Hvis man går ud fra at "%" betyder wildcard, altså et vilkårligt
>antal uspecificerede karakterer, og mit formfelt hedder "SearchText" kunne
>søgestrengen se sådan ud:
>
>strSearchText = "content=" & "%" & Request("SearchText") & "%" & "</HEAD>"

I denne sammenhæng er "%" vel bare tegnet %.
I Access-SQL er % wildcard-tegn

Jeg tror du skal have fat i enten Regular Expressions eller
InStr-funktionen - men det er lidt svært for mig lige at se, hvor du
er henne.

>Men det giver fejlmelding
Hvilken?

<SNIP>

Good luck,
Jørn


Jakob Munck (31-01-2002)
Kommentar
Fra : Jakob Munck


Dato : 31-01-02 09:06

Hej Jørn

det var forkert af mig at sige, at koden giver fejlmelding. Det gør den
ikke. Men den finder heller ikke de filer, hvor det indtastede søgeord er i
deres metatags. Her ser du den samlede kode (minus formfilen). Den første
(udkommenterede) søgestreng virker fint, men den finder kun filer med ét ord
i metatags, nemlig det som kommer først. Men hvis der er 5 ord i metatags,
skal søgemaskinen naturligvis også kunne finde de andre. Hvis
FileSystemObject ville accepterer % som wildcard for et antal uspecificerede
karakterer, ville nedenstående kode virker. Men, som sagt, den finder intet.

Her er koden:

<HTML><BODY>
<B>Search Results for <%=Request("SearchText")%></B><BR>

<%
Const fsoForReading = 1

Dim strSearchText

' søgestreng der søger på første ord i metatags:
'strSearchText = "content" & """" & Request("SearchText")

' søgestreng der ikke finder noget:
strSearchText = "content=" & "%" & Request("SearchText") & "%" & "</HEAD>"

Dim objFSO
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

Dim objFolder
'Set objFolder = objFSO.GetFolder(Server.MapPath("/"))

Set objFolder = objFSO.GetFolder(Server.MapPath("/soegemaskine_metatags/"))

Dim objFile, objTextStream, strFileContents, bolFileFound
bolFileFound = False

For Each objFile in objFolder.Files
If Response.IsClientConnected then
Set objTextStream = objFSO.OpenTextFile(objFile.Path,fsoForReading)

strFileContents = objTextStream.ReadAll

If InStr(1,strFileContents,strSearchText,1) then
Response.Write "<LI><A HREF=""/" & objFile.Name & _
""">" & objFile.Name & "</A><BR>"

bolFileFound = True
End If

objTextStream.Close
End If
Next

if Not bolFileFound then Response.Write "No matches found..."

Set objTextStream = Nothing
Set objFolder = Nothing
Set objFSO = Nothing
%>
</BODY></HTML>


Gode råd modtages med stor glæde.

v.h.
Jakob Munck



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408941
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste