Avatar billede eromaster Nybegynder
04. marts 2002 - 12:37 Der er 13 kommentarer og
1 løsning

Søg i tekste filer

Jeg skal have lavet en søge funktion som skal søge i følgende filer:

c:\sierra\Half-Life\cstrike\banned\ccd1.cfg
c:\sierra\Half-Life\cstrike\banned\ccd2.cfg
c:\sierra\Half-Life\cstrike\banned\ccd3.cfg
c:\sierra\Half-Life\cstrike\banned\ccd4.cfg
c:\sierra\Half-Life\cstrike\banned\ccd5.cfg
c:\sierra\Half-Life\cstrike\banned\ccd6.cfg
c:\sierra\Half-Life\cstrike\banned\ccd7.cfg
c:\sierra\Half-Life\cstrike\banned\ccd8.cfg
c:\sierra\Half-Life\cstrike\banned\ccd9.cfg
c:\sierra\Half-Life\cstrike\banned\ccd10.cfg
c:\sierra\Half-Life\cstrike\banned\ccd11.cfg
c:\sierra\Half-Life\cstrike\banned\ccd12.cfg
c:\sierra\Half-Life\cstrike\banned\ccd13.cfg
c:\sierra\Half-Life\cstrike\banned\ccd14.cfg
c:\sierra\Half-Life\cstrike\banned\ccd15.cfg

Hvis søge maskinen så finder det man leder efter så skal den bare skrive "Player found" eller bare "Players not found"

<FORM ACTION="bannedplayers.asp" METHOD="POST" id=form1 name=form1>

<font face=arial size=3 color="#FFFFFF">Search WonID:</font>
<br>
<input type="text" name="brugernavn" size="20">
<br>
<br>
<INPUT TYPE="submit" VALUE="Search" id=submit2 name=submit2">

</form>


Avatar billede eromaster Nybegynder
04. marts 2002 - 12:38 #1
Ups sådan skulle formen se ud

<FORM ACTION="bannedplayers.asp" METHOD="POST" id=form1 name=form1>

<font face=arial size=3 color="#FFFFFF">Search WonID:</font>
<br>
<input type="text" name="search" size="20">
<br>
<br>
<INPUT TYPE="submit" VALUE="Search" id=submit2 name=submit2">
Avatar billede ellebaek Nybegynder
04. marts 2002 - 12:46 #2
Avatar billede ellebaek Nybegynder
04. marts 2002 - 12:47 #3
det var selvfølgelig et svar
Avatar billede eromaster Nybegynder
04. marts 2002 - 12:50 #4
jeg er skam godt klar over hvordan man læser i en tekst fil, men det var jo ikke det jeg spurgte om! jeg skulle have en søge maskine som kunne søge i MANGE filer.
Avatar billede coltau Juniormester
04. marts 2002 - 13:03 #5
Du er nødt til at lave en function der kan gennemsøge en fil:

function CheckForWord(AFileName)
  ' Åbn filen og find ordet
  ' Returnere True/False
end function

og derefter et gennemløb af alle filer.

Eller sagt med andre ord  - det skal laves manuelt. :-)
Avatar billede eromaster Nybegynder
04. marts 2002 - 13:09 #6
det fatter jeg godt, men kunne jeg ikke få dig til at lave det? jeg sætter 200 point af til den som laver et virkende søge system!
Avatar billede eromaster Nybegynder
04. marts 2002 - 13:11 #7
eller du skal selvf ikke lave til alle filerne, men bare lige vise hvordan man f.eks. søge i 3 af dem på samme tid... jeg skal selvf nok selv lave alt indskrivnings arbejdet
Avatar billede ellebaek Nybegynder
04. marts 2002 - 13:51 #8
lav en fil der indeholder navnene på alle filerne, så laver du en løkke der kører indtil der ikke er flere filer. Når du har denne kan du kalde de forskellige filer med navnet du henter fra den overordnede fil...
Avatar billede netsrac Praktikant
04. marts 2002 - 14:10 #9
<%
Function InstrFile(file, search)
    Set fso = Server.CreateObject("Scripting.FileSystemObject")
    Set stream = fso.OpenTextFile(file)
    tmp = stream.readAll()
    Set stream = nothing
    Set fso = nothing
    If Instr(1, tmp, search) > 0 Then
        InstrFile = True
    Else
        InstrFile = False
    End if
End Function

player = Request.QueryString("player")
path = "c:\inetpub\wwwroot\"
Found = False

Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set map = fso.GetFolder(path)
Set files = map.files

For each item in files
    If Right(item.name, 3) = "cfg" Then
        If InstrFile(path & "\" & item.name, player) = True Then
            Found = True
            Exit For
        End if
    End if
Next

Set files = nothing
Set map = nothing
Set fso = nothing

If found = True Then
    Response.Write("player found")
Else
    Response.Write("player NOT found")
End if
%>
Avatar billede coltau Juniormester
04. marts 2002 - 14:12 #10
Hermed den lovede kode, der består af to functions. Du skal selvfølgelig ændre filnavne.

<%
' Make list of files to search
Dim files(2)
files(0) = "s0.txt"
files(1) = "s1.txt"
files(2) = "s2.txt"

Dim fs, folder
Set fs = CreateObject("Scripting.FileSystemObject")
folder = "text\" ' subfolder to search

' function to find a word i a file
function FindWord(AFileName, AWord) ' Full path
  Dim f
  response.write(afilename)
  Set f = fs.OpenTextFile(AFileName, 1)
  FindWord = False
  do while not f.AtEndOfStream
    s = f.ReadLine
    P = inStr(s, AWord)
    response.write(s & "<br>")
    if (P > 0) then
      FindWord = True
      Exit function
    end if
  loop 
  f.Close
end function

' Find a word i files
function FindWordInFiles(AWord)
  FindWordInFiles = False
  for each Item in files
    if FindWord(Server.MapPath(folder & Item), AWord) then
      FindWordInFiles = True
      Exit function
    end if
  next
end function

Found = FindWordInFiles("test") ' The word to find
if Found then
  Response.Write("Found")
else
  Response.Write("Not found")
end if
%>
Avatar billede eromaster Nybegynder
04. marts 2002 - 14:36 #11
Hvad er der galt her?:

<%
Function InstrFile(file, search)
    Set fso = Server.CreateObject("Scripting.FileSystemObject")
    Set stream = fso.OpenTextFile(file)
    tmp = stream.readAll()
    Set stream = nothing
    Set fso = nothing
    If Instr(1, tmp, search) > 0 Then
        InstrFile = True
    Else
        InstrFile = False
    End if
End Function

player = Request.QueryString("player")
path = "c:\sierra\Half-Life\cstrike\banned"
Found = False

Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set map = fso.GetFolder(path)
Set files = map.files

For each item in files
    If Right(item.name, 3) = "cfg" Then
        If InstrFile(path & "\" & item.name, player) = True Then
            Found = True
            Exit For
        End if
    End if
Next

Set files = nothing
Set map = nothing
Set fso = nothing

If found = True Then
    Response.Write("player found")
Else
    Response.Write("player NOT found")
End if
%>


<html>
<head>
</head>
<body>




</body>
</html>

Microsoft VBScript runtime error '800a003e'

Input past end of file

/config/bannedplayers.asp, line 5
Avatar billede netsrac Praktikant
04. marts 2002 - 14:42 #12
Mener det er noget med at der skrives til filerne samtidig med at der læses fra dem.


Function InstrFile(file, search)
    Set fso = Server.CreateObject("Scripting.FileSystemObject")
    Set stream = fso.OpenTextFile(file)
    On error resume next
    tmp = stream.readAll()
    If err.number <> 0 Then
      err.Clear()
    End if
    Set stream = nothing
    Set fso = nothing
    If Instr(1, tmp, search) > 0 Then
        InstrFile = True
    Else
        InstrFile = False
    End if
End Function
Avatar billede eromaster Nybegynder
04. marts 2002 - 14:45 #13
fandme nice som det virker !!!!
Avatar billede netsrac Praktikant
04. marts 2002 - 14:49 #14
Glad for at kun hjælpe :)
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