webForumDet fria alternativet

Sök med FSO

ASP

5 svar · 368 visningar · startad av Asa

Medlem sedan dec. 20011 860 inlägg
Frågan#1

Har denna kod som söker efter filnamn i en mapp. Men nu vill jag att den ska söka igenom alla mappar i strMapp oxå.

<table width="450" border="0">
<form method="post" action="sok.asp?do=sok">
 <tr>
    <td valign="top">
      Skriv sökord:
      <input type="text" name="searchtext"> &nbsp; <input type="submit" value="starta sökning">
   </td>
 </tr>
</form> 
</table>

<%If Request.QueryString("do") = "sok" Then%>

<b>Sök resultat för: <%=Request("SearchText")%></b><br>

<%Const fsoForReading = 1

strMapp = "MAPPNAMN"

Mappen = Server.MapPath(strMapp)
MappUrl = Mid(Mappen, InStrRev(Mappen, "\") + 1)

strSearchText = Request("SearchText")
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(Mappen)

bolFileFound = False

For Each objFile in objFolder.Files
  If Response.IsClientConnected then
    If InStr(1,objFile.Name,strSearchText,1) then
       Response.Write "<b>»</b> <a href=" & MappUrl & "/" & objFile.Name & ">" & objFile.Name & "</a><br>"
       bolFileFound = True
    End If
  End If
Next

if Not bolFileFound then Response.Write "Inga sökresultat..."

Set objFolder = Nothing
Set objFSO = Nothing

End If%>
Medlem sedan dec. 20003 887 inlägg
#2
Set objSubFolder = objFolder.SubFolders

For Each objSF In objSubFolder
  [blue].
  .
  .[/blue]
Next

Jag tror det blir så... du kan ju kolla lite mer här Folders Collection.

Medlem sedan dec. 20011 860 inlägg
#3

Ska testa! Tack...

Medlem sedan dec. 20011 860 inlägg
#4

Så här? Men det funkar ju ej

<table width="450" border="0">
<form method="post" action="sok.asp?do=sok">
 <tr>
    <td valign="top">
      Skriv sökord:
      <input type="text" name="searchtext">   <input type="submit" value="starta sökning">
   </td>
 </tr>
</form> 
</table>

<%If Request.QueryString("do") = "sok" Then%>

<b>Sök resultat för: <%=Request("SearchText")%></b><br>

<%Const fsoForReading = 1

strMapp = "MAPPNAMN"

Mappen = Server.MapPath(strMapp)
MappUrl = Mid(Mappen, InStrRev(Mappen, "\") + 1)

strSearchText = Request("SearchText")
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(Mappen)

bolFileFound = False

For Each objFile in objFolder.Files
  If Response.IsClientConnected then
    If InStr(1,objFile.Name,strSearchText,1) then
       Response.Write "<b>»</b> <a href=" & Mappen & objFile.Name & " target=""_blank"">" & objFile.Name & "</a><br>"
       bolFileFound = True
    End If
  End If
Next
Set objSubFolder = objFolder.SubFolders

For Each objSF In objSubFolder
  If Response.IsClientConnected then
    If InStr(1,objSF.Name,strSearchText,1) then
       Response.Write "<b>»</b> <a href=" & Mappen & "/" & objSF.Name & ">" & objSF.Name & "</a><br>"
       bolFileFound = True
    End If
  End If
Next

if Not bolFileFound then Response.Write "Inga sökresultat..."

Set objFolder = Nothing
Set objFSO = Nothing

End If%>
Medlem sedan mars 20015 287 inlägg
#5

Du måste ju "gå in" in mappen och söka för varje mapp som hittas, typ:

<table width="450" border="0">
<form method="post" action="sok.asp?do=sok">
 <tr>
    <td valign="top">
      Skriv sökord:
      <input type="text" name="searchtext">   <input type="submit" value="starta sökning">
   </td>
 </tr>
</form> 
</table>

<%If Request.QueryString("do") = "sok" Then%>

<b>Sök resultat för: <%=Request("SearchText")%></b><br>

<%Const fsoForReading = 1

strMapp = "MAPPNAMN"

Mappen = Server.MapPath(strMapp)
MappUrl = Mid(Mappen, InStrRev(Mappen, "\") + 1)

strSearchText = Request("SearchText")
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(Mappen)

For Each objFile in objFolder.Files
  If Response.IsClientConnected then
    If InStr(1,objFile.Name,strSearchText,1) then
       Response.Write "<b>»</b> <a href=" & Mappen & objFile.Name & " target=""_blank"">" & objFile.Name & "</a><br>"
       bolFileFound = True
    End If
  End If
Next

Set objSubFolder = objFolder.SubFolders

For Each objSF In objSubFolder

bolFileFound = False

For Each objFile in objSF.Files
  If Response.IsClientConnected then
    If InStr(1,objFile.Name,strSearchText,1) then
       Response.Write "<b>»</b> <a href=" & Mappen & objFile.Name & " target=""_blank"">" & objFile.Name & "</a><br>"
       bolFileFound = True
    End If
  End If
Next

Next

if Not bolFileFound then Response.Write "Inga sökresultat..."

Set objFolder = Nothing
Set objFSO = Nothing
Set objSubFolder = Nothing

End If%>

GÅr väl iofs att göra smidigare genom att lägga det i en fuktion samt att den då kan söka ännu djupare ner. Nu klarar det ju bara en undernivå.

Medlem sedan dec. 20011 860 inlägg
#6

Nån som vet hur man gör en funktion av detta då?

299 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
160 ms — ändringar (db)