Trådstart 19 juni 2001 09:33 #1 Är det nån som har ett enkelt exempel på hur man använder en tabbseparerad textfil istället för en databas?
Jag är ute efter att på en sida kunna söka i textfilen och på en andra sida kunna se resultatet..
-Enkelt med en Accessbas, men hur gör man med en textfil??
E erka Medlem sedan dec. 1999 6 522 inlägg Ett tipps. Pearl är väldigt bra för hantering av text filer. Kan vara värt att titta på om du vill ha en optimal lösning.
erka: Det går inte med perl i mitt fall. Endast ASP.
@nders Medlem sedan juni 2000 32 967 inlägg du kan faktiskt koppla textfiler med odbc, så det kan vara ett alternativ.
annars kan du ju använda filesystemobject och lite strängfunktioner (instr() till exempel) för att få ut det du vill ha.
mvh,
@nders: ...vilket i praktiken innebär
Vide Medlem sedan dec. 1999 8 577 inlägg Du kan läsa mer om hur man öppnar textfilen här: http://www.devguru.com/Technologies/vbscript/quickref/filesystemobject_opentextfile.html
Och för att hitta en tabb i den så letar du efter vbtab
@nders Medlem sedan juni 2000 32 967 inlägg birp, förlåt att jag bara sitter och håller tyst.
jag märkte helt enkelt inte att du hade svarat. hur går det? har du löst alltihop mha länk aus videmannen?
Jag har inte löst det...
Jag kommer heller inte att klara det utan ett enkelt litet kodexempel är jag rädd
@nders Medlem sedan juni 2000 32 967 inlägg nåt sånt härnt kanske?
set objFSO = Server.CreateObject ("Scripting.FileSystemObject")
set objTFile = objFSO.OpenTextFile(Server.MapPath("filen.txt"))
while not objTFile.atendofstream
strFileLine = objTFile.readline
varFileInfo = split (strFileLine, vbTab)
'säg att jag ska söka igenom den tredje kolumnen i filen
if instr(varFileInfo(2), Request.Form("search")) > 0 then
' jippi här hittade vi någe skoj!
end if
wend
set objTFile = Nothing
set objFSO = Nothing
mvh,
Du får låna min get..
Jag ska kolla i morron på jobbet där min 10.7MB tunga textfil med 26 kolumner ligger
Tack så länge @nders!!
Fattar som vanligt inte...
@nders Medlem sedan juni 2000 32 967 inlägg ok, två sidor, en med sökformuläret på och en som sköter sökningen.
1:
' - - - söksidan - - -
<form action="searchresults.asp" method="post">
<input type="text" name="search">
<input type="submit" value="sök">
</form>
2:
' - - - resultatsidan - searchresults.asp - - -
<%
set objFSO = Server.CreateObject ("Scripting.FileSystemObject")
set objTFile = objFSO.OpenTextFile(Server.MapPath("filen.txt"))
while not objTFile.atendofstream
strFileLine = objTFile.readline
varFileInfo = split (strFileLine, vbTab)
'säg att jag ska söka igenom den tredje kolumnen i filen
if instr(varFileInfo(2), Request.Form("search")) > 0 then
' jippi här hittade vi någe skoj!
response.write "kol1: " & varFileInfo (0) & ", kol2: " & varFileInfo (1) & ", kol3: " & varFileInfo(2) & "<br>"
end if
wend
set objTFile = Nothing
set objFSO = Nothing
%>
svårt att lära gamla hundar vb-script, kanske?
@nders Medlem sedan juni 2000 32 967 inlägg och förresten, filen.txt byter du givetvis ut till namnet på den fil du vill söka igenom.
mvh,
Nja... Det funkar ändå inte.
Felmeddelande:
Körningsfel i Microsoft VBScript (0x800A0009)
Felaktigt matrisindex: '[number: 2]'
/intranet/searchresults.asp, line 10
Kan det va fel på min textfil måntro?
Så här är den uppbygd:
4 95120 951207014 7014 32227014 I802B 2 2 3222 350 1 U U95120 81 18964 1,5 5V 970603 AG 1 0 0
5 95120 951207013 7013 32227013 I802B 3 2 3222 350 1 U U95120 81 18964 1,5 5V 807 t 1 0 0
8 95120 951207105 7105 32227105 G902F 6 2 3222 0 1 K K95120 81 CC 2DR RÍD 1 0 0
9 95120 951207105 7105 32227105 G902F 7 2 3222 0 1 K K95120 81 CC 2DR RÍD 1 0 0
10 95120 951207021 7021 32227021 20 8 DAMASK SK 2 3222 500 1 M M95120 81 18964 1,5 5V 980430 AG 1 0 0
11 95120 951207022 7022 32227022 20 9 DAMASK SK 2 3222 0 1 M M95120 81 18964 1,5 5V 1 0 0
17 95120 951207040 7040 32227040 465H 15 2 3222 700 1 M M95120 81 18964 1,5 5V 970831 T 1 0 0
20 95120 951201015 1015 32221015 H39 17 2 3222 0 1 K K95120 81 CC 2DR RÍD 1 0 0
21 95120 951208010 8010 32228010 J1203 18 2 3222 0 1 M M95120 81 18964 1,5 5V 1 0 0
26 95120 951201003 1003 32221003 I200 22 HÍ FR 2 3222 0 1 K K95120 81 CC 2DR RÍD 1 0 0
28 95120 951201002 1002 32221002 H200 24 LITE SK 2 3222 250 1 K K95120 81 CC 2DR RÍD 970910 T 1 0 0
Ursäkta att jag sabbar tråden nu
[Redigerat av Skywalker den 20 jun 2001]
Brimba Medlem sedan dec. 1999 5 874 inlägg Koden fungerar perfekt.
<%
set objFSO = Server.CreateObject ("Scripting.FileSystemObject")
set objTFile = objFSO.OpenTextFile(Server.MapPath("filen.txt"))
while not objTFile.atendofstream
strFileLine = objTFile.readline
varFileInfo = split (strFileLine, vbTab)
if instr(varFileInfo(2), "951207014") > 0 then
response.write "kol1: " & varFileInfo (0) & ", kol2: " & varFileInfo (1) & ", kol3: " & varFileInfo(2) & "<br>"
end if
wend
set objTFile = Nothing
set objFSO = Nothing
%>
Tänk på att split (strFileLine, vbTab) splittar för tabb. Alltså, måste det vara tabbulerat mellan varje kolumn. Det skall inte vara mellanslag.
Provkör gärna:
Textfilen: http://194.236.61.46/test/bire/filen.txt
Koden: http://194.236.61.46/test/bire/filen1.asp
Nu är det nära.. Mailar hem filerna o fortsätter i lugn o ro!
Återkommer med största sannolikhet i ärendet Haha..