FIND
FIND | |
Syntax: | FIND<string> |
Parameter | |
string: gesuchte Zeichenfolge | |
Einordnung | |
Typ: | Kommando |
Kontext: | Programmierhilfe |
Aufgabe: | Suchen von Programmstellen |
Abkürzung: | keine (TSB: fiN) |
Token: | $64 $4d (100 77) |
Verwandte Befehle | |
PAGE - OPTION - DELAY |
Dieser Artikel beschreibt das Simons'-Basic-Schlüsselwort FIND.
Typ: Kommando Syntax: FIND<string>
Wer in seinem Programm (alle) Stellen sucht, an denen ein bestimmter String oder ein bestimmter Befehl steht, der muss FIND benutzen. FIND wird im Direktmodus verwendet, im Programm funktioniert das Kommando auch, aber sein Aufruf endet auch dort im Direktmodus.
Bei der Angabe von Suchzeichen muss man wissen, was intern beim Absenden des Suchauftrags passiert, damit man auch das findet, was man sucht: Nach Eingabe von <Return> auf der FIND-Zeile wandelt der Interpreter das FIND und alles, was darauf noch folgen sollte, in Tokens um, soweit das möglich ist. Sucht man also nach dem BASIC-Schlüsselwort INT, dann wird FIND auch fündig, wenn er im Programm vorkommt. Sucht man allerdings nach der 3-buchstabigen Zeichenfolge "INT", z. B. innerhalb eines Strings, sagen wir im Wort "INTERNATIONAL", dann wird FIND diese Stelle nicht anzeigen, da es ja nach dem Token für den Befehl INT sucht (das den Wert $B5 bzw. 181 hat). Es nützt nichts, Anführungszeichen um INT zu setzen, also FIND"INT" zu schreiben, denn FIND würde diese Anführungszeichen mitsuchen und ebenfalls nicht fündig werden. FIND"INT (ohne abschließendes Anführungszeichen) wäre dagegen erfolgreich, denn diese Zeichenfolge liegt ja auch tatsächlich vor.
In so einem Fall muss man die gesuchte Zeichenfolge so zurechtstutzen, dass in ihr kein Basic-Befehl (weder von BASIC V2 noch von Simons' Basic oder TSB) vorkommt. In unserem Beispiel als etwa "NT" oder "NTE" oder ähnlich.
FIND gibt die Zeilennummern der Fundstellen im Tabulatorabstand aus, also vier Fundstellen-Zeilennummern pro Bildschirmzeile.
Beachten: Auch ein Leerzeichen zwischen FIND und dem eigentlichen Suchbegriff ist signifikant und wird mitgesucht. Leerzeichen nach FIND also tunlichst vermeiden!
In TSB wurde der FIND-Befehl erweitert um die Möglichkeit, auch in literalen Strings zu suchen.
Beispiele[Bearbeiten | Quelltext bearbeiten]
FINDwasser
- durchsucht das Programm nach der Zeichenfolge "wasser"
FIND
- listet ausnahmslos alle Programmzeilen)
FIND"
- findet alle Strings im Programm
FINDpoke
- zeigt die Stellen an, die den Basic-Befehl POKE enthalten
$ | % | @ | 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