Hallo Leute,
ich habe da mal ein Problem.
Folgender Programmcode in Bascom
Code:
Gbdriveerror = Initfilesystem(01) 'SD Carte initialisieren / FAT initialisieren
If Gbdriveerror = 0 Then Lcd "SD-CARD DOS "
If Gbdriveerror <> 0 Then
Lcd "SD-CARD DOS FAIL"
End
End If
Cls 'Display löschen
For A = 0 To 200 '200 Dateien erzeugen
Inii = "preset" + Str(a) + ".prs"
Lowerline
Lcd A ; " "
Zaehler = A
Bankname = "BANK Nr.: " + Str(a)
Infodat = "MIDICONSK"
Bufferadresse = Varptr(bankname)
Open Inii For Output As #1
Write #1 , Bankname , Zaehler , Infodat
Close #1
Next A
A = 0
Do 'Mal kucken ob die Daten da sind
Bankname = ""
Zaehler = 0
Infodat = ""
Inii = "preset" + Str(a) + ".prs"
Open Inii For Input As #1
Input #1 , Bankname , Zaehler , Infodat
Close #1
Cls
Lcd Bankname ; " " ; Zaehler
Lowerline
Lcd Infodat ; " " ; Inii
Incr A
If A > 189 Then A = 0 ' <----- Hier der Fehler
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
Lesezeichen