Avatar billede kriskrisk Nybegynder
01. juni 2004 - 15:42 Der er 10 kommentarer og
1 løsning

Programmet "snubler"

Jeg har lavet en applikation, der henter en masse data i en database og spytter det ud i 3 tekstfiler. Dette fungerer fint, når det gøres i én fil ad gangen.

Når jeg vil have den til at lave alle 3 filer på én gang, begynder der at blive problemer. Det foregår i en for-next løkke, hvor bl.a. filnavnet ændres.

Problemet er forskelligt fra gang til gang og helt tilfældigt. I nogle forsøg bliver teksten i filerne roddet rundt og gentaget et par gange, i andre forsøg når den til fil nr. 2 el. 3 før den begynder at køre i en uendelig løkke (og det er ikke løkkerne, der er noget i vejen med).

Det virker med andre ord som om applikationen "snubler" i den for-next løkke, og ikke helt kan følge med sig selv.

Jeg har prøvet delay/timer og andet, jeg har fundet her på Eksperten for at forsøge at give lidt "tænkepause" undervejs, men det hjælper ikke rigtigt.

Er der nogen der har været ude for det samme, eller ved hvordan problemet kan løses?

Mvh.
Avatar billede hiks Nybegynder
01. juni 2004 - 16:05 #1
det er ikke fordi du skriver til den samme fil eller lign.?

/hiks
Avatar billede kriskrisk Nybegynder
01. juni 2004 - 16:15 #2
Nej, jeg skriver til 3 forskellige.
Avatar billede tubber Juniormester
01. juni 2004 - 18:14 #3
Noget kode ville hjælpe.....det er lidt svært at se hvad der sker rent praktisk uden kode.....

Så kode til:
Hent fra db og skriv til fil vil hjælpe gevaldigt

/Tubber
Avatar billede martin_moth Mester
01. juni 2004 - 22:16 #4
Er du nu SIKKER på at der ikke er fejl i koden?
For det er vel næppe nisser der driller ;o)
Avatar billede kriskrisk Nybegynder
02. juni 2004 - 09:26 #5
Hvis vi havde været i december, havde jeg ikke været i tvivl, men på denne årstid må der være en anden forklaring :-)

Når hele koden står inde i denne løkke:
---
For u=1 to 3

next u
---

...kommer de tilfældige fejl som beskrevet.

Sletter jeg derimod løkken og skriver i stedet u=1 og kører programmet, derefter u=2 og kører og derefter u=3 og kører, så får jeg mine 3 filer i smukkeste stand. Det er derfor, jeg føler mig rimelig sikker på, at det ikke er fejl i koden.
Avatar billede martin_moth Mester
02. juni 2004 - 09:45 #6
Hvor skulle der så være fejl? Hmmmm

Får du lukket filerne ordentligt, nedlagt eventuelle objekter osv?

Prøv at vis hele løkken...
Avatar billede kriskrisk Nybegynder
02. juni 2004 - 10:30 #7
Problemet løst

"nedlagt eventuelle objekter" var kodeordet. Lukning af databaseforbindelsen var inde i løkken, mens åbningen lå før. Mærkeligt at den ikke brokker sig over det, men blot fortsætter i en uendelighed. Det er måske ulempen ved at sprede "On error resume next" overalt i sin kode.

Når jeg ikke kan give kvajebajere, må jeg jo give kvajepoint. Lægger du et svar Martin?

Skide nisser...
Avatar billede martin_moth Mester
02. juni 2004 - 10:48 #8
Ja, de driller året rundt :o(
Avatar billede joern Nybegynder
02. juni 2004 - 13:55 #9
Hej.

Jeg er lidt bagud, for spørgsmålet her er jo sluttet.  Men som spørgeren selv anfører kan det let gå galt når der anvendes 'On error Resume next'.  Efter min mening burde den mulighed slet ikke findes.  Det svarer til at afbryde alle ledninger til instrumentbrættet i en bil og bare glemme alt om olie og vand.  Selvfølgelig skal 'on error' føre til en label med en bemærkning om hvor fejlen er, og desuden exit'te subrutinen.  Fyda!

M.v.h.  Jørn
Avatar billede martin_moth Mester
02. juni 2004 - 17:19 #10
yep
Avatar billede martin_moth Mester
02. juni 2004 - 17:20 #11
Og min egen kæphens: Sæt VB til at kræve variabeldeklaræring.

Ikke fordi det har noget med ovenstående at gøre, men livet (fejlfinding især) er meget lettere når man har sat det lille flueben under options

:o)
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