webForumDet fria alternativet

söka i filer i olika kataloger

ASP

15 svar · 461 visningar · startad av pellsäter

Medlem sedan aug. 2000526 inlägg
Frågan#1

vill kunna söka i de olika sidorna i vår site inkluderat alla undermappar. Hur skirever jag denna sträng så att det funkar? Som det är nu så säker den bar på filer som ligger direkt i katalogen "amts"

FolderToCheck = server.mappath("\") &"/" & amts & "/"

Kan förresten kolla detta också. Jag har skrivit i funktionen att den ska leta efter .html .htm och .asp filer. Men nu har jag filer som slutar med .asp?något Hur gör jag då

Medlem sedan aug. 2000526 inlägg
#2

Är det någon som nån idé!!!

Medlem sedan dec. 19996 522 inlägg
#3

posta övrig kod så vi kan se hur det är uppbyggt.

Medlem sedan aug. 2000526 inlägg
#4

Ok!!

Sitter på jobbet nu utan tillgång till filerna ska se om jag sticker hom på lunch sen

Medlem sedan dec. 19996 522 inlägg
#5

Du söker väll igenom filerna och filerna heter ju inte whatever.asp?Querystring=BALALAL&Querystring2=KEFFOLAFFE

Medlem sedan aug. 2000526 inlägg
#6

En del filer heter tex.

lankar.asp?kat=musikal

och söker jag på tex Hair så vet jag att jag har det ordet med i den kategorin men den hittar inte det

Medlem sedan dec. 19996 522 inlägg
#7

Själva filerna heter ju inte lankar.asp?kat=musikal utan filen heter lankar.asp, querystringen får du ju inte med försn du har kört sidan på servern

Medlem sedan aug. 2000526 inlägg
#8

men varför hittar den då inte den sidan??

Medlem sedan dec. 19996 522 inlägg
#9

Eftersom han inte söker igenom själva sidorna utan bara filstrukturen, filen i filstrukturen heter lankar.asp det är först när sidan executas på servern (när någon besöker den) som querystringen kommer med.

Medlem sedan aug. 2000526 inlägg
#10

hmmm knepigt!!

jag vill ju att han ska söka på ordet Hair och visa en länk till den sidan där ordet finns med!! vad han gör nu är att ahan visar en länk till lankar.asp

Jag vill att han ska visa till lankar.asp?kar=musikal

går inte det menar du?

Medlem sedan dec. 19996 522 inlägg
#11

Jo det går men det är lite krångligt. Man kan lösa det på ett flertal sätt. Skicka med en sökparameter från sökscriptet som plockas upp av sidan lankar.asp och visar rätt querystring är ett sätt. Det beror på hur det övrigt är kodat

Medlem sedan aug. 2000526 inlägg
#12

ok det får jag kika lite på då!!

Den andra frågan behöver du ha mer kod till... jag får fixa det ikväll...

"vill kunna söka i de olika sidorna i vår site inkluderat alla undermappar. Hur skirever jag denna sträng så att det funkar? Som det är nu så säker den bar på filer som ligger direkt i katalogen "amts"

FolderToCheck = server.mappath("\") &"/" & amts & "/"

Bengt

Medlem sedan aug. 2000526 inlägg
#13

Här är koden för sökfunktionen som jag vill ska söka i alla mappar ingående i siten

      \<% 

Sub ShowList()
FolderToCheck = server.mappath("\") &"/" & amts & "/"
Dim fs, f, f1, fc, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(FolderToCheck)
Set fc = f.Files
For Each f1 in fc

     Wfile = f1.name 
      if right(Wfile, 5)=".html" OR right(Wfile, 4)=".htm" OR right(Wfile, 4)=".asp" then 
        Wfile2 = FolderToCheck & Wfile 
        Set fs = CreateObject("Scripting.FileSystemObject") 
        Set a = fs.OpenTextFile(Wfile2) 
        ct = a.ReadAll 
        a.close 
        ct2=lcase(ct) 
        SearchTerm2 = lcase(SearchTerm) 

              if instr(ct2,SearchTerm2)\>0 then 

                  if instr(ct,"\</title\>")\>0 then 
              longitud=instr(ct,"\</title\>") 
              longitud=longitud -1 
                      ct=left(ct,longitud) 
                      longitud2=len(ct) 
              longitud=instr(ct,"\<title\>") 
              longitud=longitud2 -longitud -6 
                      ct=right(ct,longitud) 
                 else 
                    if instr(ct,"\</TITLE\>")\>0 then 
                longitud=instr(ct,"\</TITLE\>") 
                longitud=longitud -1 
                        ct=left(ct,longitud) 
                        longitud2=len(ct) 
                longitud=instr(ct,"\<TITLE\>") 
                longitud=longitud2 -longitud -6 
                        ct=right(ct,longitud) 
         end if 
                 end if 

                SearchResponse= SearchResponse +"\<TR\>\<TD\>"+ ct + "" + " \<A HREF=" + "/" + Wfile +"\>»\</A\>\</TD\>\</TR\>" 
      longitud=0 
              ct="" 

              end if 
      end if 

Next

Response.Write ("<HTML><HEAD><TITLE>Sökresultat</TITLE></HEAD><BODY BGCOLOR=F8F5D6><LEFT>")
Response.Write ("")

Response.Write ("")
if SearchResponse<>"" then
Response.Write SearchResponse
else
Response.Write ("Tyvärr, så resulterade sökordet inga träffar.</TD></TR>")
end if
Response.Write ("")

Response.Write ("<FONT SIZE=1> </A>")
Response.Write ("</LEFT></BODY></HTML>")

End Sub
%>

Medlem sedan aug. 2000526 inlägg
#14

hej igen!!

Är det någon som har nån idé så tar jag tacksamt emot den!

Mvh
Bengt

Medlem sedan juni 200032 967 inlägg
#15

Spontant känns det som att jag hade gjort så här:

  1. Skapat ett filsystemsobjekt och loopat igenom samlingen SubFolders i mappen amts.
  2. för varje undermapp, ropat på subben ShowList(), som då måste ta emot mappnamn som argument
  3. lyft ut det som bara ska skrivas ut en gång, ur subben, och skriva ut innan resp. efter loopen (enligt punkt 1.).

Mvh,

Medlem sedan aug. 2000526 inlägg
#16

ok???? och hur gör man det???

massa frågor *skrattar*

262 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)