Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
SILENT-da
Anmeldungsdatum: 20.05.2008 Beiträge: 2
|
Verfasst am: 21.05.2008, 00:28 Titel: fortlaufend-nummerierte $Variabeln |
|
|
Hallo,
..folgendes Problem beschäftigt mich jetzt schon seit Tagen:
Ich habe mehrere Zeilen, welche ich nacheinander darstellen möchte
(a la Matrix-Code
Code: |
line01$ = "X X X X"
line02$ = "X X X "
line03$ = " X X X "
'usw.
|
mein Problem ist jetzt das ich keine Lust habe tausende von PRINT-Zeilen zu erstellen in denen ich immer eine 'Line' dazuschreibe (..wäre ziemlich viel)
Statt dessen würde ich gerne mit einer Schleife und Counter arbeiten, jedoch tritt jetzt folgendes Problem auf:
- Wie lasse ich die fortlaufende Nummer inmitten der $Variable -LineXX$ ansteigen / bzw. abfallen?
Ich habe es schon SINNGEMÄß wie folgt probiert:
Code: |
schleife:
counter% = 01
line$ = "line" + counter% + "$"
PRINT line$
counter% = counter% + 1
GOTO schleife
|
Die Frage ist jetzt: Wie bekomme ich den Counter als Teil des Namens der Line-Variabel eingefügt?
Bei den Varianten, die mir eingefallen sind hat QBasic mir dann immer den Text (Bsp.) "Line01$" geschrieben..
Vielleicht hat jemand eine Idee und kann mir da etwas weiterhelfen
Danke schonmal! |
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4597 Wohnort: ~/
|
Verfasst am: 21.05.2008, 00:36 Titel: |
|
|
Die variablen Variablen sind ein Dauerbrenner
Unter QBASIC und FreeBASIC bekommst du die gar nicht hin, aber bei dem, was ich bis jetzt von deinem Programm mitbekommen habe, würde ich stattdessen ein Array verwenden:
Code: | DIM line$(1 TO 99)
line$(1) = "X X X X"
line$(2) = "X X X "
line$(3) = " X X X "
' usw. usf.
FOR i=1 TO 99
PRINT line$(i)
NEXT |
Was anderes: Wenn du das Ding schon Schleife nennst, kannst du statt des GOTO auch gleich ein Schleifen-Konstrukt (DO oder FOR) verwenden. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
SILENT-da
Anmeldungsdatum: 20.05.2008 Beiträge: 2
|
Verfasst am: 21.05.2008, 11:45 Titel: |
|
|
hm'.. das mit dem Array klingt logisch
- werd ich gleich mal ausprobieren!
DANKE!, für die schnelle Antwort..
Das mit der Schleife is klar, ..ich hatte das bloß aus dem Stehgreif mal schnell zum Nachvollziehen so hingeschrieben
*Grüße
Edit:
WUNDERBAR! - Das Array funktioniert!
- jetzt steh ich zwar vor nem weiteren Problemchen, aber das hat nichts direkt hiermit zu tun, ..somit erledigt.
Nochmals DANKE!
Hier die Lösung:
Code: |
DIM line$(-48 TO 0)
line$(0) = ""
line$(-1) = "x x x x x x x "
line$(-2) = " xXXX xxx xxxx "
line$(-3) = " x x x "
'usw...
FOR i% = -48 TO -1 '48 Lines insgesamt
'
IF i% <> -48 GOTO partB
'
partA:
CLS
PRINT line$(i%)
inline$ = line$(i%)
GOTO ahead
'
partB:
inline$ = line$(i%) + inline$
CLS
PRINT inline$
'
ahead:
NEXT
|
..natürlich muss man hier und da noch ein, zwei Pausen/Verzögerungen einbauen damit der Code nicht grade so runter prasselt
(hab ich mit dem TIMER gelöst..)
*Gruß
- closed - |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2507 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 21.05.2008, 19:48 Titel: |
|
|
Diverse solche Thematiken werden sonst unter
http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/Anfaengerfehler.html
gehandhabt.
@SILENT-da: Für solche Konstrukte ist sonst READ und DATA empfehlenswert oder sogar das Einlesen ab externer Textdatei. Vielleicht als Gegenfrage: Wird die "X"-Belegung von Dir von Hand erstellt oder könnte das Ganze nach einem bestimmten Algorithmus sogar berechnet werden? _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
|