Avatar billede mskjoldp Novice
18. juli 2009 - 22:20 Der er 13 kommentarer og
1 løsning

hvordan laves +1 i 1-dim array

Hey E
Hvordan holder jeg den forrige post op mod den næste post i et 1-dimmentionelt array?

Jeg benytter denne kode i et 2-dimmentionelt array som jeg ønsker
varNgrad_1 = replace(arrMitArray(6,i),".",",")
varNgrad_2 = replace(arrMitArray(6,i+1),".",",")

men i en anden kode vil jeg gøre det samme "arrMitArray(6,i+1)" men har kun et 1-dimmentionelt array...

hvordan kommer jeg til at kunne se en post frem i løkken ?
Avatar billede erikjacobsen Ekspert
18. juli 2009 - 22:23 #1
Hvis det er 1-dimensionalt skal du blot:

  arrMitArray(i+1)
Avatar billede mskjoldp Novice
18. juli 2009 - 22:26 #2
det er vist værdien på data ved siden af... jeg ønsker værdien af 'rækken' under men i samme 'kolonne'
Avatar billede mskjoldp Novice
18. juli 2009 - 22:30 #3
i
varNgrad_1 = replace(arrMitArray(6,i),".",",")
varNgrad_2 = replace(arrMitArray(6,i+1),".",",")
er tallet 6 fx et udtryk for 'kolonneværdien': 10347
hvor '6, i+1' er et udtryk for 'kolonneværdien': 11345 men en 'række' under værdien 10347.

jeg udtrækker fra en txt fil hvorfor jeg skriver kolonner og rækker med ''
Avatar billede mskjoldp Novice
18. juli 2009 - 22:38 #4
eller hvordan laver man et et-dimensionalt array til et to-dimensionalt array?
Avatar billede erikjacobsen Ekspert
18. juli 2009 - 22:51 #5
Mit svar er vel hvad du spurgte efter ;)

Og vi kan vist ikke komme tættere på før vi får at vide hvad dit 1-dimensionelle array indeholder. Svaret bliver nok noget i retning af: 6*noget+(i+1)
Avatar billede mskjoldp Novice
18. juli 2009 - 22:58 #6
udtræk af txt filen

2009    05    05    07    36    26    55,229692    9,348786    119,078453    18    1    0
2009    05    05    07    36    32    55,228682    9,348787    108,241554    20    1    0
2009    05    05    07    36    36    55,227759    9,348781    104,098702    20    1    0
2009    05    05    07    36    42    55,226824    9,348740    100,897721    20    1    0
2009    05    05    07    36    46    55,225899    9,348709    103,023658    19    1    0
2009    05    05    07    36    52    55,224943    9,348678    100,222871

hvor jeg laver et array således:
Dim fso, f, filespec
Set fso = CreateObject("Scripting.FileSystemObject")
    filespec = Server.Mappath("/autolog/txt/tur1.txt")
Set f = fso.OpenTextFile(filespec,1)
    response.Write("<table border=0>")
    Do While not f.AtEndOfStream
        response.Write("<tr>")
        arrM = Split(f.ReadLine,",")
        for i = 0 to ubound(arrM)
            dim varNoDot
... her prøver jeg at finde løsningen
            Ngrad_1 = replace(arrM(6),".",",")
            Ngrad_2 = replace(arrM(6+i),".",",")
            Egrad_1 = replace(arrM(7),".",",")
            Egrad_2 = replace(arrM(7+i),".",",")
.... slut på problem
            varNoDot = replace(arrM(i),".",",")
            Response.write("<td>"&varNoDot&"</td>")
        next
        response.Write("</td></tr>")
    Loop
    response.Write("</table>")
f.Close %>
Avatar billede erikjacobsen Ekspert
18. juli 2009 - 23:02 #7
Der er 12 kolonner?

Kigger du kolonne 6 i række i, så har du fat i  (i*12)+(6-1)
Skal du kigge på kolonne 6 i række i+1, så skal du have fat i ((i+1)*12)+(6-1)

Eller du skal bare lægge 12 til.
Avatar billede mskjoldp Novice
18. juli 2009 - 23:05 #8
hmmm interessant... prøver lige
Avatar billede mskjoldp Novice
18. juli 2009 - 23:17 #9
jeg prøvet at arbejde med koden lidt nu... men jeg rammer uden for området: Indekset er uden for området: '[number: 17]'
/autolog/datatxt.asp, line 19


    Do While not f.AtEndOfStream
        e = e + 1
        response.Write("<tr>")
        arrM = Split(f.ReadLine,",")
        for i = 0 to ubound(arrM)
            dim varNoDot
            varNoDot = replace(arrM(i),".",",")
            Ngrad_1 = arrM( ((i*12)+(6-1)) )
    line 19        Ngrad_2 = arrM( (((i+1)*12)+(6-1)) )
            Egrad_1 = arrM( ((i*12)+(7-1)) )
            Egrad_2 = arrM( (((i+1)*12)+(7-1)) )
            Response.write("<td>"&varNoDot&"|"&i&"</td>")
        next
        response.Write("<td>"&e&"|"&i&"|"&Ngrad_1&"|"&Ngrad_2&"|"&Egrad_1&"|"&Egrad_2)

        response.Write("</td></tr>")
    Loop
Avatar billede erikjacobsen Ekspert
18. juli 2009 - 23:36 #10
Hmm, jeg kan jo også bare læse hvad du skriver af kode. Jeg troede du havde læst det hele ind i eet array. Som det står læser du en linie af gangen, og har derfor ikke adgang til næste række.

Skal du kigge på næste række kunne du måske læse det hele ind først.
Avatar billede mskjoldp Novice
18. juli 2009 - 23:41 #11
ja
det vil jeg super meget gerne.... men jeg kan ikke finde ud af at lave f.GetRows i FSO ...!?
Avatar billede erikjacobsen Ekspert
18. juli 2009 - 23:51 #12
Nej, GetRows er kun til database.

Og selvfølgelig kan man læse det ind i noget svarende til GetRows. Når du nu har valgt gammeldags ASP med VBScript, så er det bare så bøvlet. Det gider jeg ikke.

Men hvad med om du bare puttede data ind i en tabel i en database, og så brugte GetRows derfra?
Avatar billede mskjoldp Novice
18. juli 2009 - 23:57 #13
jeg vil gerne blive i behandlingen af txt filer da de er et produkt af en GPS, hvorfor en DB ikke er en ide. Men hvis der er en kode der kan smide txt i en DB uden at gøre noget end at uploade txt filen.. tjaaa så måske..

Hvilket sprog/scriptform vil du gerne behandle problemet i ?
Avatar billede mskjoldp Novice
04. august 2009 - 23:25 #14
lukker
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