RENUMBER
RENUMBER | |
Syntax: | RENUMBER <start>, <step> |
Parameter | |
start: Startzeilennummer | |
step: Schrittweite beim Inkrementieren | |
Einordnung | |
Typ: | Kommando |
Kontext: | Programmierhilfe |
Aufgabe: | Die Zeilennummern eines Programms umnummerieren |
Abkürzung: | keine |
Token: | $64 $79 (100 121) |
Verwandte Befehle | |
keine |
Dieser Artikel beschreibt das Simons'-Basic-Schlüsselwort RENUMBER.
Zu vergleichbarer Funktionalität abseits von Simons' Basic siehe Renumber.
Typ: Kommando
Syntax: RENUMBER <start>, <step>
Der Befehl RENUMBER soll es ermöglichen, unregelmäßige Abstände in der Zeilennummerierung eines Programms (viele "Einschübe" zwischen dem normalen Abstand zweier BASIC-Zeilen, z. B. folgt auf Zeile 100 nicht 110, sondern 102, 104 und 105 usw.) wieder in einen bestimmten, gleichmäßigen Abstand zu bringen. Zwischen unmittelbar aufeinanderfolgend nummerierten Zeilen können dann auch wieder neue Zeilen eingefügt werden (sofern die Schrittweite größer als 1 gesetzt war).
Beim Aufruf gibt man hinter RENUMBER eine Startzeilennummer <start> und eine einzuhaltende Schrittweite <step> ein. Das Programm wird nach Betätigen von RETURN neu durchnummeriert.
Bei berechnenden GOTOs in Form von CGOTO-Aufrufen müssen diese gegebenenfalls nach einem RENUMBER-Aufruf entsprechend angepasst werden. Das kann automatisiert nicht einfach von RENUMBER gelöst werden.
Vorsicht:
- Selbst bei den einfachen Fällen wirkt sich leider die Nummerierung ausschließlich auf die Zeilennummern der Programmzeilen selbst aus, jedoch nicht auf Sprungzielangaben in Form von Zeilennummern innerhalb des Programms, wie sie z.B. bei RUN, LIST, THEN/GOTO und GOSUB vorkommen.
- Auch die Überschreitung der Höchstgrenze für Zeilennummern (63999) wird nicht abgefangen, mit dem Ergebnis, dass Zeilen mit einer Nummerierung ab 64000 (wie sie durch RENUMBER entstehen können) nicht mehr editierbar sind und auch vom Interpreter während eines Programmlaufs nicht mehr gefunden werden. Das Programm ist damit unwiderruflich zerstört.
Aus diesen Gründen ist dieser Befehl nur eingeschränkt brauchbar und es sollte auf alternative Renumber-Implementierungen wie jene von TSB oder der Simons' Basic Extension zurückgegriffen werden.
Dieser Befehl wurde in TSB so überarbeitet, dass er nunmehr voll funktionsfähig ist, siehe RENUMBER (TSB).
Beispiel[Bearbeiten | Quelltext bearbeiten]
RENUMBER 100,10
Dieser Befehl nummeriert die BASIC-Zeilen ab 100 mit einer Schrittweite von 10 neu.
$ | % | @ | ANGL | ARC | AT | AUTO | BCKGNDS | BFLASH | BLOCK | CALL | CENTRE | CGOTO | CHAR | CHECK | CIRCLE | CMOB | COLD | COLOUR | COPY | CSET | DELAY | DESIGN | DETECT | DIR | DISABLE | DISAPA | DISK | DISPLAY | DIV | DOWN | DRAW | DUMP | DUP | ELSE | END LOOP | END PROC | ENVELOPE | ERRLN | ERRN | EXEC | EXIT | EXOR | FCHR | FCOL | FETCH | FILL | FIND | FLASH | FRAC | GLOBAL | GRAPHICS | HI COL | HIRES | HRDCPY | INKEY | INSERT | INST | INV | JOY | KEY | LEFT | LIN | LINE | LOCAL | LOOP | LOW COL | MEM | MERGE | MMOB | MOB OFF | MOB SET | MOD | MOVE | MULTI | MUSIC | NO ERROR | NRM | OFF | OLD | ON ERROR | ON KEY | OPTION | OUT | PAGE | PAINT | PAUSE | PENX | PENY | PLACE | PLAY | PLOT | POT | PROC | RCOMP | REC | RENUMBER | REPEAT | RESET | RESUME | RETRACE | RIGHT | RLOCMOB | ROT | SCRLD | SCRSV | SECURE | SOUND | TEST | TEXT | TRACE | UNTIL | UP | USE | VOL | WAVE