Hjælp til en VB kode !

Tags:    visual-basic

Hejsa!

Jeg er ved at kode et lektieprogram i VB, men jeg er desværre stødt på et problem med denne kode:

Private Sub cmdHent_Click()
Open App.Path & "\\trafiklys.dat" For Input As #1
Do While Not EOF(1)
For i = 0 To 4
List2(i).AddItem Data
Line Input #1, Data
Next
Loop
Close #1
End Sub

Meningen med koden er, at den skal kunne åbne mine gemte lektier, men programmet siger:
"Run-time error "62" Input past end of life" hver gang jeg trykker på hent. Hvad skal jeg gøre for, at undgå dette?




7 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Hejsa!

Jeg er ved at kode et lektieprogram i VB, men jeg er desværre stødt på et problem med denne kode:

Private Sub cmdHent_Click()
Open App.Path & "\\trafiklys.dat" For Input As #1
Do While Not EOF(1)
For i = 0 To 4
List2(i).AddItem Data
Line Input #1, Data
Next
Loop
Close #1
End Sub

Meningen med koden er, at den skal kunne åbne mine gemte lektier, men programmet siger:
"Run-time error "62" Input past end of life" hver gang jeg trykker på hent. Hvad skal jeg gøre for, at undgå dette?

Jeg ved ikke om det har betydning, men jeg vil hente dat ind før jeg præsenterede dem

sådan her:

Private Sub cmdHent_Click()
Open App.Path & "\\trafiklys.dat" For Input As #1
Do While Not EOF(1)
For i = 0 To 4
Line Input #1, Data
List2(i).AddItem Data
Next
Loop
Close #1
End Sub

hvorfor egenlig bruge en for-løkke alsåt hente 4 liner for hver line?

evt. prøv:

Private Sub cmdHent_Click()
Open App.Path & "\\trafiklys.dat" For Input As #1
Do While Not EOF(1)
Line Input #1, Data
List2(i).AddItem Data
Loop
Close #1
End Sub

-Thomas
**************************************
Hvis mennesker er så kloge, hvorfor ødelægger
vi så os selv og den verden vil lever i?
**************************************
I mod softwarer patenter
http://www.nosoftwarepatents.com/

-------------------------------------------------------
Visual Basic noget for dig?
tjek Visual Basic-Gruppen
http://www.udvikleren.dk/groups/?gid=41



Tak min det virker desværre ikke :( Grunden til, at jeg bruger en for-next-løkke er fordi, hver lektie har 5 dele!


Hver gang du bruger "Line Input"-kommandoen, sætter du pointeren #1 til at pege ned på næste linie i filen. Hvis det er den samme data du skal have indsat i alle fem lister, skal koden se sådan her ud:

Private Sub cmdHent_Click()
Open App.Path & "\\trafiklys.dat" For Input As #1
Do While Not EOF(1)
Line Input #1, Data
For i = 0 To 4
List2(i).AddItem Data
Next i
Loop
Close #1
End Sub

Hvis hver lektie står på én linie der indeholder 5 forskellige dele, kan du bruge streng-funktioner til at hive den nødvendige del ud af 'Data'.

// Your brain is your weapon, do not waste it!!



User
Bruger #488 @ 15.12.05 16:56
En mulighed:

Open App.Path & "\\trafiklys.dat" For Input As #1
Do While Not EOF(1)
nylinie = "" <- ;D
For i = 0 to 4
Line Input #1, j
List(2).AddItem, j
Next i
Loop
Close #1




Hejsa!

Jeg er ved at kode et lektieprogram i VB, men jeg er desværre stødt på et problem med denne kode:

Private Sub cmdHent_Click()
Open App.Path & "\\trafiklys.dat" For Input As #1
Do While Not EOF(1)
For i = 0 To 4
List2(i).AddItem Data
Line Input #1, Data
Next
Loop
Close #1
End Sub

Meningen med koden er, at den skal kunne åbne mine gemte lektier, men programmet siger:
"Run-time error "62" Input past end of life" hver gang jeg trykker på hent. Hvad skal jeg gøre for, at undgå dette?

Jeg ved ikke om det har betydning, men jeg vil hente dat ind før jeg præsenterede dem

sådan her:

Private Sub cmdHent_Click()
Open App.Path & "\\trafiklys.dat" For Input As #1
Do While Not EOF(1)
For i = 0 To 4
Line Input #1, Data
List2(i).AddItem Data
Next
Loop
Close #1
End Sub

hvorfor egenlig bruge en for-løkke alsåt hente 4 liner for hver line?

evt. prøv:

Private Sub cmdHent_Click()
Open App.Path & "\\trafiklys.dat" For Input As #1
Do While Not EOF(1)
Line Input #1, Data
List2(i).AddItem Data
Loop
Close #1
End Sub

-Thomas
**************************************
Hvis mennesker er så kloge, hvorfor ødelægger
vi så os selv og den verden vil lever i?
**************************************
I mod softwarer patenter
http://www.nosoftwarepatents.com/

-------------------------------------------------------
Visual Basic noget for dig?
tjek Visual Basic-Gruppen
http://www.udvikleren.dk/groups/?gid=41


Tak min det virker desværre ikke :( Grunden til, at jeg bruger en for-next-løkke er fordi, hver lektie har 5 dele!




...Og hvis du virkelig har hver lektie spredt ud i 5 dele på 5 linier, så husk på at filen skal have et antal linier der går op i 5 (ingen rest)!!

Ps. Pas på, tomme linier bliver også talt med; en if-sætning kan dog klare dette problem hurtigt.

// Your brain is your weapon, do not waste it!!



...Og hvis du virkelig har hver lektie spredt ud i 5 dele på 5 linier, så husk på at filen skal have et antal linier der går op i 5 (ingen rest)!!

Ps. Pas på, tomme linier bliver også talt med; en if-sætning kan dog klare dette problem hurtigt.

// Your brain is your weapon, do not waste it!!
Hmm det hjælp lidt, men hvis du kigger på mit screenshot, så vil jeg ikke have at der skal være 5 dele på hver liste!

linket til screenshot: http://img424.imageshack.us/my.php?image=hjlp9bn.jpg




Okay, inden vi går helt amok med at prøve os frem, ville det nok være meget smartere hvis du skrev, hvordan en typisk trafiklys.dat så ud. Er delene i en lektie separeret med tegn/lineskift? Og er lektierne på nogen måde separeret eller er afstanden til næste lektie altid konstant, så man bare kan tage højde for det i programmet?). Jeg har indtryk af at filen ser sådan her ud:

Fold kodeboks ind/udKode 


Derudover må du også gerne skrive, hvad der skal gøres med disse indlæste data. Er der én liste hvor hver lektie skal tilføjes som én lang tekst, sådan at delene er separeret med tabulatorer? Eller er der fem lister, som hver indenholder en bestemt del, af alle lektierne?

Ps. Tak for ideen til min nye signatur

// Lærenem er ham, der kan stille de rigtige spørgsmål til den rigtige person...



t