Hej
Jag försöker skapa en sökfunktion som ska söka igenom alla filer i en katalog. Filerna är av typen asp.
För detta använder jag mig FSO för att hitta vilka filer som finns sedan hämtar jag informationen från varje fil med xmlhttp.
Problemet är att sidorna chachas varför? Hur kan man lösa detta?
Om en fil innehåller enbart asp kod så får jag felmeddelande hur kan man hindra det.
Om det blir fel på en fil så får strSida samma värde som sidan innan. Varför?
Här är min kod som jag avnäder mig av. Den skriver nu ut allting från alla sidor sedan ska koden göras om så att endast sökresultatet skrivs ut.
Vad tror ni om denna metod? Vill inte använda mig av en datbas för mina sökningar och MS Indexing services tillåts inte av mitt webhotell. Finns det nån bättre lösning än min?
<%
response.expires = -1000
response.addheader "pragma", "no-cache"
session.LCID =1053
Function BinToText(varBinData, intDataSizeInBytes)
const adFldLong = 128
const adVarChar = 200
set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Fields.Append "txt", adVarChar, intDataSizeInBytes, adFldLong
objRS.Open
objRS.AddNew
objRS.Fields("txt").AppendChunk(varBinData)
tmp = objRS("txt").Value
objRS.Close
BinToText = tmp
End Function
Function RemoveStyle(ByVal sString)
Dim objRegExp
Set objRegExp = New RegExp
objRegExp.Global = True
objRegExp.IgnoreCase = True
objRegExp.Pattern = "<style[\s\S]*?</style>"
RemoveStyle = objRegExp.Replace(sString & "", " ")
Set objRegExp = Nothing
End Function
Function RemoveJava(ByVal sString)
Dim objRegExp
Set objRegExp = New RegExp
objRegExp.Global = True
objRegExp.IgnoreCase = True
objRegExp.Pattern = "<script[\s\S]*?</script>"
RemoveJava = objRegExp.Replace(sString & "", " ")
Set objRegExp = Nothing
End Function
Function RemoveHTML(ByVal sString)
Dim objRegExp
Set objRegExp = New RegExp
objRegExp.Global = True
objRegExp.IgnoreCase = True
objRegExp.Pattern = "<[^>]*>"
RemoveHTML = objRegExp.Replace(sString & "", " ")
Set objRegExp = Nothing
End Function
Function hamtaSida(sokvag)
on error resume next
Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", sokvag, False
objHTTP.setRequestHeader "Content-type","text/html"
objHTTP.Send
strSida = BinToText(objHTTP.responseBody,35000)
Set objHTTP = Nothing
hamtaSida = strSida
End Function
set objFS = server.createObject("Scripting.FileSystemObject")
set objFolderRoot = objFS.getFolder(application("driver")&application("rootFolder")&"\pages")
set colFiles = objFolderRoot.Files
For each objFile in colFiles
strSida = hamtaSida(application("httpAdress")&"pages/"&objFile.name)
strSida = RemoveStyle(strSida)
strSida = RemoveJava(strSida)
strSida = RemoveHTML(strSida)
response.write "<strong>"&objFile.name&"</strong><br><br>"
response.write strSida&"<hr>"
strSida = ""
Next
%>
I koden får ni ändra sökvägarna så att de fungerar för er