Du kan bruge FSO til at åbne din teskt fil og søge hver linje igennem. Dette styk kode passer til hvordan du har vist filen ser i spørgsmålet samt beskrvet med et vare nummer starter ved tegn nr. 3 og forsætter til tegn nr. 6. Vareteksten starter ved tegn nr. 7. og forsætter til første komma, vare beskrivelsen udskrive ikke dog er der en linje kode som kan gøre det, den skal bare udkommenteres.:
Filen åbnes i denne linie og du skal rette filnanet så det passer med dit og evt. også så stien passer hvis .txt og .asp filerne ikke ligger i samme folder.: set file = fso.OpenTextFile(Server.Mappath("DINFIL.TXT"),1)
Her er koden:
<body> <center> <table> <form action="<%=Request.ServerVariables("SCRIPT_NAME")%>" method="post"> <tr><td>Vare nummer:</td><td><input type="text" name="varenr"></td></tr> <tr><td colspan="2"><input type="submit" name="find" value="Find vare beskrivelse"></td></tr> </form> </table> </center> <% if request.serverVariables("REQUEST_METHOD")="POST" then varenr = Request.Form("varenr") Response.Write "<br><br>Du søgte efter vare nummer : " & varenr & ":<br>"
if varenr<>"" then set fso = Server.CreateObject("Scripting.FileSystemObject") set file = fso.OpenTextFile(Server.Mappath("DINFIL.TXT"),1) varefundet=false 'Bruges til at stoppe når vare nummeret er fundet do while (not file.AtEndOfStream) and (varefundet=false) str = file.ReadLine filvarenr=Mid(str,3,4) '4 kommer fra 7-3 if Cstr(filvarenr)=CStr(varenr) then i = instr(str,",") response.write "Vareteksten: " & mid(str,7, i-7) & "<br>" 'Næste linje udskriver varebeskrvelsen fjerne ' så den ikke er udkommenteret. 'response.write "Varebeskrivelse: " & mid(str,i+1) & "<br>" varefundet=true end if loop if varefundet=false then response.write "Ingen vare fundet. Søg igen." end if end if %> </body>
Synes godt om
Slettet bruger
01. februar 2005 - 19:09#4
eagleeye> Kanon :) ... Dog lige en lille ting... Efter beskrivelsen i tegn 30 kommer der flere tekster... Så hvis varebeskrivelsen kan begrænses til max at kunne gå til det 30. tegn.?
ok, kommer der noget andet efter tegn 30 eller er det et linje skift. Det kan evt. laves om så den tager alle tegn hvor varetekst slutter til tegn 30 som vare beskrivelse?
Du kan rette linien hvor den udskriver varebeskrivelsen så den ikke tager resten af linien:
'Næste linje udskriver varebeskrvelsen fjerne ' så den ikke er udkommenteret. response.write "Varebeskrivelse: " & mid(str,i+1) & "<br>"
Til dette så den tager til karakter nr.30 30-i er for mid sidste parameter er en længde og ikke slut katakter:
'Næste linje udskriver varebeskrvelsen fjerne ' så den ikke er udkommenteret. response.write "Varebeskrivelse: " & mid(str,i+1,30-i) & "<br>"
Synes godt om
Ny brugerNybegynder
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.