Avatar billede Slettet bruger
01. februar 2005 - 15:09 Der er 5 kommentarer og
1 løsning

Søge gennem txt-dokument

Hej

Jeg har et TXT-dokument med en masse varenr. og varetekster. og beskrivelse.

Jeg vil gerne kunne indtaste varenr. på en ASP-side og få returneret vareteksten.

Linierne består af:
209999Varenavn22,besk22
301111Varenavn1234,besk1234

Varenr. Varetekst    Beskrivelse
9999    Varenavn22  Besk22
1111    Varenavn1234 Besk1234

Hvordan løser jeg det?

tak ;)
Avatar billede mnoer Nybegynder
01. februar 2005 - 16:44 #1
Er Varenr., Varetekst og Beskrivelse sepereret af komme eller <tab> ?
Avatar billede Slettet bruger
01. februar 2005 - 17:11 #2
Varenr. starter ved 3 tegn... og varenavn ved 7 tegn - og herefter er bekrivelsen sepererert med et ","
Avatar billede eagleeye Praktikant
01. februar 2005 - 18:10 #3
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>
Avatar billede 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.?
Avatar billede eagleeye Praktikant
01. februar 2005 - 19:28 #5
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?
Avatar billede eagleeye Praktikant
01. februar 2005 - 21:02 #6
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>"
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