Avatar billede inkognito1 Nybegynder
30. oktober 2004 - 20:09 Der er 10 kommentarer og
1 løsning

Tag alle mapper med i script.

X Jeg har bikset dette script sammen fra nogle artikler fra bla. exp.dk.

Har selv bygget lidt på osv. Det søger i alle filer i en mappe. Men vil gerne have det til at tage filerne sub mapperne med.

En der kan hjælpe med det ?
------

<html>
<body>
<form action='search.asp' method='post'>
<input type=text name=ord>
<input type=submit value="Søg">
</form>
<%
sOrd = request("ord")
if sOrd = "" then
response.end
end if
dir = ".\"
x = Request.ServerVariables("PATH_INFO")
pos = InStrRev(x, "/")
stien = Left(x, pos)

afiler = "0"
Set FileSystem = CreateObject("Scripting.FileSystemObject")
Set MainFolder = FileSystem.Getfolder(Server.Mappath(dir))
Set Files = MainFolder.Files
Set Folders = MainFolder.subfolders
For Each File in Files
afiler = afiler + 1
next

reDim htmlfiler (afiler)
antal = "0"
Set FileSystem = CreateObject("Scripting.FileSystemObject")
Set MainFolder = FileSystem.Getfolder(Server.Mappath(dir))
Set Files = MainFolder.Files
Set Folders = MainFolder.subfolders
For Each File in Files
htmlfiler (antal) = ""&lcase(file.name)&""
antal = antal+1
next

ingenhitsoverhovedet=true
do while (i<uBound(htmlfiler))
sFile=""
Set objFS = CreateObject("Scripting.FileSystemObject")
strDir = Request.ServerVariables("SCRIPT_NAME")
sFile = Server.MapPath(Left(strDir, InStrRev(strDir,"/"))) & "/" & htmlfiler(i)
Set tekst = objFS.OpenTextFile(sFile, 1, False)
fundet = false
do while (NOT tekst.AtEndOfStream AND NOT fundet)
sTemp = tekst.ReadLine
if Instr(1, sTemp, sOrd, 1)>0 then
response.write("<a href='" & htmlfiler(i) &" '>" & htmlfiler(i) & "</a><br>")
ingenhitsoverhovedet=false
fundet=true
end if
loop

tekst.close
Set tekst = nothing
i=i+1
loop
Set objFS = Nothing
if ingenhitsoverhovedet then response.write("Desværre ingen af siderne indeholder '" & sOrd & "'")
%>
Avatar billede montago Praktikant
30. oktober 2004 - 23:50 #1
dvs.. du vil søge efter ord i filer i alle undermapper...

damn... det bliver et mega rekursiv script !
Avatar billede montago Praktikant
30. oktober 2004 - 23:51 #2
Hvis jeg var dig... ville jeg starte med at lave et rekursivt script... som printer alle mapper ud, og deres undermapper... i en træ-struktur...

derfra er der nemlig ikke langt til at søge efter ord i mappernes filer!
Avatar billede inkognito1 Nybegynder
30. oktober 2004 - 23:53 #3
Ideen er kun midlertidig .. altså ikke noget der skal køres permanent.

Jeg skal skifte nogen indstillinger ud og vild erfor være sikekr på at indstillingerne i filerne er kommet med.
Avatar billede montago Praktikant
30. oktober 2004 - 23:55 #4
hehe...
endnu en grund til at bruge <--Include--> til at holde alle vigtige funktioner osv..

jeg tror der findes værktøjer til at gøre dette... altså en forlænget Search-Replace
Avatar billede inkognito1 Nybegynder
30. oktober 2004 - 23:56 #5
ok .. en ide .. kunne jo fint lave det på selve platformen ... behøver ikke være via ASP.
Avatar billede inkognito1 Nybegynder
30. oktober 2004 - 23:58 #6
Ang. include ... så bruger jeg det også .. men det er noget gl. kode en anden har lavet jeg bygger videre på :) Og skal nemlig indsætte en inclue ting i stedet for.

Så i teorien skal jeg kun køre den en gang.
Avatar billede montago Praktikant
31. oktober 2004 - 00:30 #7
Heyy.. jeg har lige lavet et script som viser alle undermapper...
Du kan bruge det til at søge i alle filer...

<%
Set fso = Server.CreateObject("Scripting.FileSystemObject")

On Error Resume Next
    Function PrintTree(Path,Tal)
        Set fo  = fso.GetFolder(Path)
        For each x in fo.SubFolders
            For A = 0 to Tal
                Response.Write "&nbsp;&nbsp;&nbsp;&nbsp;"
            Next
            Response.write x.Name & "<br>"
            PrintTree Path & "\" & x.name , Tal + 1
        next
    End Function
If Err Then
    Response.Write Err
end if

    PrintTree "F:\" , 0

set fo=nothing
set fs=nothing
%>
Avatar billede inkognito1 Nybegynder
31. oktober 2004 - 00:30 #8
Tanke torsk ... fra min side. Det er kalrt jeg bare skal bruge et allerede udviklet program.

/Takker
Avatar billede inkognito1 Nybegynder
31. oktober 2004 - 00:30 #9
Ok .. men kan nok bruge dit script til en anden gang :)
Avatar billede montago Praktikant
31. oktober 2004 - 00:34 #10
nejda... det er altid sjovere at lave tingene selv !
Avatar billede inkognito1 Nybegynder
31. oktober 2004 - 02:02 #11
Ja hvis det var noget der skulle bruges flere gange .. så har du ganske ret :) Men lige i dette tilfælde hvor det i teorien kun skal bruges denne ene gang så syens jeg det er lidt spild af tid :)
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