Hallo Leute,
ich habe da mal ein Problem.
Folgender Programmcode in Bascom
1 | Gbdriveerror = Initfilesystem(01) 'SD Carte initialisieren / FAT initialisieren
|
2 | If Gbdriveerror = 0 Then Lcd "SD-CARD DOS "
|
3 | If Gbdriveerror <> 0 Then
|
4 | Lcd "SD-CARD DOS FAIL"
|
5 | End
|
6 | End If
|
7 | Cls 'Display löschen
|
8 | For A = 0 To 200 '200 Dateien erzeugen
|
9 | Inii = "preset" + Str(a) + ".prs"
|
10 | Lowerline
|
11 | Lcd A ; " "
|
12 | Zaehler = A
|
13 | Bankname = "BANK Nr.: " + Str(a)
|
14 | Infodat = "MIDICONSK"
|
15 | Bufferadresse = Varptr(bankname)
|
16 | Open Inii For Output As #1
|
17 | Write #1 , Bankname , Zaehler , Infodat
|
18 | Close #1
|
19 | Next A
|
20 |
|
21 |
|
22 | A = 0
|
23 | Do 'Mal kucken ob die Daten da sind
|
24 | Bankname = ""
|
25 | Zaehler = 0
|
26 | Infodat = ""
|
27 | Inii = "preset" + Str(a) + ".prs"
|
28 | Open Inii For Input As #1
|
29 | Input #1 , Bankname , Zaehler , Infodat
|
30 | Close #1
|
31 | Cls
|
32 | Lcd Bankname ; " " ; Zaehler
|
33 | Lowerline
|
34 | Lcd Infodat ; " " ; Inii
|
35 |
|
36 | Incr A
|
37 | If A > 189 Then A = 0 ' <----- Hier der Fehler
|
38 | Loop
|
Bitte nicht über den Code aufregen, ich wollte nur mal die
Funktionalität von AVR-DOS Testen und wie schnell das geht.
Nun der Fehler: Obwohl ich die if a > 189 Abfrage weit hinter der For /
Next Schleife habe wird in der FOR / NExt Schleife nur bis 189 gezählt
und dann bei null wieder angefangen?!?!? Im Loop jedoch haut garnix mehr
hin.
Wie kommt Bascom auf die Idee in einer geschlossenen FOR/NEXT Schleife
aus einem komplett anderen Bereich (DO/LOOP) die Ifabfrage zu nutzen ?!
Bin ich irgentwie Blöd, ich will aus Prinzip aber keine zweite Variable
nutzen. In dem späteren Projekt wäre dieses Verhalten fatal.
Gruß,
Stephan