Avatar billede rane Nybegynder
24. april 2003 - 10:46 Der er 13 kommentarer og
1 løsning

Datafil håndtering

Ok dette er sikkert en tricky lille djævel, but here goes:

Jeg vil gerne udtrække en helt masse informationer fra en speciel .txt fil og automatisk få disse info placeret i de rigtige input felter på en asp-side. Her er et eksempel på .txt filens struktur:

9  B. Iversholt Go 0 0 5 0 6 1

4  L. Dessau De 0 0 17 9 0 16
2  W. Bresann De 0 0 3 4 0 4
5  B. Ørnelund De 0 0 10 2 0 6

6  C. Overup Mi 0 0 23 5 0 8
21  C. Ljungberg Mi 0 1 14 2 0 9
13  T. Goff Mi 0 2 12 1 0 4
11  K. Køng Mi 0 0 27 6 0 9

10  I. Bensler St 0 2 12 1 0 7
25  A. Norberg St 1 6 10 1 0 5

7  H. Kildemoes Su 0 0 9 2 0 4

-----

Dvs. jeg skal "bare" udtrække alle tallene i hver række og finde en nem måde at indsætte dem i en Access tabel.

Min tanke har hidtil været at "loade" filen ind i et ASP-dokument, hvorefter alle tallene så automatisk bliver smidt ind i de rigtige INPUT felter - hvor jeg så bare bagefter kunne trykke på "opdater" hvor den så gemmer dataene.

Men kan man (hvis ja, hvordan?) gøre det på denne måde med datafil håndtering?

Findes der en anden nemmere måde?

200 points til den, der kan give mig et grundigt og brugbart svar :)
Avatar billede cesil Nybegynder
24. april 2003 - 11:05 #1
Prøv det her.
txtpath er stien til din fil.

<%    set objFSO = server.createobject("scripting.filesystemobject")
    Set ObjNewFile = objFSO.OpenTextFile(txtpath, 1, Create)
    If not ObjNewFile.AtEndOfStream Then             
        Do While not ObjNewFile.AtendOfStream
            newline = ObjNewFile.ReadLine
                tabel = split(newline, " ")
                    L1 = replace(replace(tabel(1),"'" , "''"),chr(34),"")
                    L2 = replace(replace(tabel(2),"'" , "''"),chr(34),"")
                    L3 = replace(replace(tabel(3),"'" , "''"),chr(34),"")
                    L4 = replace(replace(tabel(4),"'" , "''"),chr(34),"")
                    L5 = replace(replace(tabel(5),"'" , "''"),chr(34),"")
                    L6 = replace(replace(tabel(6),"'" , "''"),chr(34),"")
                    L7 = replace(replace(tabel(7),"'" , "''"),chr(34),"")
                    L8 = replace(replace(tabel(8),"'" , "''"),chr(34),"")
                    L9 = replace(replace(tabel(9),"'" , "''"),chr(34),"")
                    L10 = replace(replace(tabel(10),"'" , "''"),chr(34),"")
            %>   
  <tr>
    <td width="150"><font face="Verdana" size="1" ><%= L1 %>&nbsp;</font></td>
    <td width="150"><font face="Verdana" size="1" ><%= L2 %>&nbsp;</font></td>
    <td width="150"><font face="Verdana" size="1" ><%= L3 %>&nbsp;</font></td>
    <td width="150"><font face="Verdana" size="1" ><%= L4 %>&nbsp;</font></td>
    <td width="150"><font face="Verdana" size="1" ><%= L5 %>&nbsp;</font></td>
    <td width="150"><font face="Verdana" size="1" ><%= L6 %>&nbsp;</font></td>
    <td width="150"><font face="Verdana" size="1" ><%= L7 %>&nbsp;</font></td>
    <td width="150"><font face="Verdana" size="1" ><%= L8 %>&nbsp;</font></td>
    <td width="150"><font face="Verdana" size="1" ><%= L9 %>&nbsp;</font></td>
    <td width="150"><font face="Verdana" size="1" ><%= L10 %>&nbsp;</font></td>
  </tr>

<%
        loop   
    end if   

Set Upload = Nothing
Set objFSO = Nothing
Set ObjNewFile = Nothing
Avatar billede rane Nybegynder
24. april 2003 - 12:20 #2
Det lader ikke helt til at virke. Den står bare og loader og loader hele tiden. Min kode:

<table>
<%    set objFSO = server.createobject("scripting.filesystemobject")
    Set ObjNewFile = objFSO.OpenTextFile("file.asp", 1, Create)
    If not ObjNewFile.AtEndOfStream Then             
        Do While not ObjNewFile.AtendOfStream
            newline = ObjNewFile.ReadLine
                tabel = split(newline, " ")
                    L1 = replace(replace(tabel(1),"'" , "''"),chr(34),"")
                    L2 = replace(replace(tabel(2),"'" , "''"),chr(34),"")
                    L3 = replace(replace(tabel(3),"'" , "''"),chr(34),"")
                    L4 = replace(replace(tabel(4),"'" , "''"),chr(34),"")
                    L5 = replace(replace(tabel(5),"'" , "''"),chr(34),"")
                    L6 = replace(replace(tabel(6),"'" , "''"),chr(34),"")
                    L7 = replace(replace(tabel(7),"'" , "''"),chr(34),"")
                    L8 = replace(replace(tabel(8),"'" , "''"),chr(34),"")
                    L9 = replace(replace(tabel(9),"'" , "''"),chr(34),"")
                    L10 = replace(replace(tabel(10),"'" , "''"),chr(34),"")
                    L11 = replace(replace(tabel(11),"'" , "''"),chr(34),"")
            %>   
  <tr>
    <td width="150"><font face="Verdana" size="1" ><%= L1 %>&nbsp;</font></td>
    <td width="150"><font face="Verdana" size="1" ><%= L2 %>&nbsp;</font></td>
    <td width="150"><font face="Verdana" size="1" ><%= L3 %>&nbsp;</font></td>
    <td width="150"><font face="Verdana" size="1" ><%= L4 %>&nbsp;</font></td>
    <td width="150"><font face="Verdana" size="1" ><%= L5 %>&nbsp;</font></td>
    <td width="150"><font face="Verdana" size="1" ><%= L6 %>&nbsp;</font></td>
    <td width="150"><font face="Verdana" size="1" ><%= L7 %>&nbsp;</font></td>
    <td width="150"><font face="Verdana" size="1" ><%= L8 %>&nbsp;</font></td>
    <td width="150"><font face="Verdana" size="1" ><%= L9 %>&nbsp;</font></td>
    <td width="150"><font face="Verdana" size="1" ><%= L10 %>&nbsp;</font></td>
    <td width="150"><font face="Verdana" size="1" ><%= L11 %>&nbsp;</font></td>
  </tr>

<%
        loop   
    end if   

Set Upload = Nothing
Set objFSO = Nothing
Set ObjNewFile = Nothing

%>

</table>
Avatar billede hossein Nybegynder
24. april 2003 - 12:40 #3
den loader og loader fordi du har en Antivirus program kørenede? Norton?
Avatar billede rane Nybegynder
24. april 2003 - 12:45 #4
Har prøvet lige at disable Antivirus - men den gør stadig det samme.
Avatar billede cesil Nybegynder
24. april 2003 - 12:49 #5
prøv og tjek om der er extra linier i din txt fil. Hvis der er så stil curseren efter sidste tegn og slet indtil der ikke er mere og slette.
Avatar billede hossein Nybegynder
24. april 2003 - 12:51 #6
Er det norton? hvis ja under option skal du vælge norton antivirus også i menuen i højre under system vælge script blocking også disable den og derefter restart din maskine
Avatar billede rane Nybegynder
24. april 2003 - 12:52 #7
Selve tekst ASP-filen er god nok, der er ingen ekstra linjer.

Men har det noget at gøre med, hvordan filen bliver gemt? (ANSI, Unicode osv.) - fordi jeg har bare gemt den som en file.asp fil inde fra Homesite programmet.
Avatar billede cesil Nybegynder
24. april 2003 - 13:04 #8
lad det komme an på en prøve og gem som txt-fil.
Avatar billede rane Nybegynder
24. april 2003 - 13:25 #9
Hmm...har prøvet at uploade det på www.darkforest.dk/file/index.asp

Hvor den siger "File not found" til følgende linje:

    Set ObjNewFile = objFSO.OpenTextFile("file.txt", 1, Create)

Selvom file.txt ligger i samme mappe som index.asp

huh???!
Avatar billede cesil Nybegynder
24. april 2003 - 13:33 #10
Hvis filen ligger i samme bibliotek som resten så prøv lige det her.
hvis du stadig får fejlen så lav en response.write på path for at se hvor den forventer og finde filen.

path = server.mappath(".")
path = path & "\file.txt"

Set ObjNewFile = objFSO.OpenTextFile(path, 1, Create)
Avatar billede rane Nybegynder
24. april 2003 - 13:53 #11
Ok det virkede - men lige 2 ting:

1. Den tager ikke det første tal med i hver linje (dvs. det der står foran navnet som det første i linjerne) ?

2. Den tager ikke Linje 11 med af en eller anden grund?  Fejlbesked:

Microsoft VBScript runtime error '800a0009'
Subscript out of range: '[number: 11]'

/file/index.asp, line 30
Avatar billede cesil Nybegynder
24. april 2003 - 13:57 #12
1.
L1 = replace(replace(tabel(0),"'" , "''"),chr(34),"")
den næste skal så hedde 1 osv.

2.
der er jo kun 10 elementer i hver række, så slet L11 begge steder
Avatar billede rane Nybegynder
24. april 2003 - 14:16 #13
Som du måske kan se på www.darkforest.dk/file/index.asp  - så virker det perfekt nu - jeg takker mange gange :)
Avatar billede cesil Nybegynder
24. april 2003 - 14:22 #14
Perfekt ;-)
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