Säg att jag har en textfil fylld med en massa olika saker, en sak per rad. Kan inte en lösning vara att loopa in varje rad i en egen post i en databas, och sedan arbeta utifrån den, vilket torde vara lite enklare? Kan detta funka? Då du har allt i en och samma variabel kan du som föreslogs läsa in datat, men i en stor textsträng.Sen splittar du denna på crlf-taggen, ex: Ett mycket stort tack till Christoffer V som fixade det hela åt mig :).Söka i fil.
T.ex:
peter
petra
johan
johanna
Jag vill nu ha ett forumlär där jag söker igenom textfilen och presenterar resultatet.
Säg att jag söker på "et" då ska den skriva ut peter och petra. Och gärna hur många träffar som hittades av hur många rader, i det här fallet två (träffar) av fyra (rader).
Hur ska jag gå till väga för att göra det här?Sv: Söka i fil.
Sv: Söka i fil.
<code>
<%
Function SearchTextFile(strSearch)
Const Filename = "/readme.txt" ' file to read
Const ForReading = 1, ForWriting = 2, ForAppending = 3
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
' Create a filesystem object
Dim FSO
set FSO = server.createObject("Scripting.FileSystemObject")
' Map the logical path to the physical system path
Dim Filepath
Filepath = Server.MapPath(Filename)
if FSO.FileExists(Filepath) Then
' Get a handle to the file
Dim file
set file = FSO.GetFile(Filepath)
' Open the file
Dim TextStream
Set TextStream = file.OpenAsTextStream(ForReading, TristateUseDefault)
' Read the file line by line
Do While Not TextStream.AtEndOfStream
Dim Line
Line = TextStream.readline
' Do something with "Line"
If instr(1,Line, strSearch) then
Response.write Line
end if
Loop
Set TextStream = nothing
End If
Set FSO = nothing
End Function
%>
</code>Sv: Söka i fil.
<code>
textmassa = fso.ReadAll
fso.close
sok = lcase("er")
minArray = Split(textmassa, vbCrLf)
max = ubound(minarray)
for a=0 to max
if instr(lcase(max(a)), sok) > 0 then
response.write max(a) & "<br>"
end if
next
</code>Sv: Söka i fil.
<code>
<%
strFile = Server.MapPath("fil.txt")
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Namnlöst dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form name="form1" method="post" action="search.asp?action=search">
<input type="text" name="searchstring">
<input type="submit" name="Submit" value="Search">
</form>
<%
action = request.QueryString("action")
if action = "search" then
strSearchString = request.Form("searchstring")
Dim F, T
Set F = CreateObject("Scripting.FileSystemObject")
Set T = F.OpenTextFile(strFile)
cntLines = 0
cntFoundLines = 0
Do Until T.AtEndOfLine
cntLines = cntLines + 1
strLine = T.ReadLine
if Instr(strLine, strSearchString) <> False Then
cntFoundLines = cntFoundLines + 1
Response.Write(strLine & "<br>" & vbCrlf)
end if
Loop
T.Close
Response.Write("Found <b>" & cntFoundLines & "</b> line(s) of <b>" & cntLines & "</b>")
end if %>
</body>
</html>
</code>