FIND (SBX)
|
Dieser Artikel beschreibt das Simons'-Basic-Extension-Schlüsselwort FIND.
Typ: Anweisung Syntax: FIND <suchzeichen> oder: FIND"<suchzeichen>
Die Syntaxversion 1 von FIND sucht nach Zeichen und Befehlen, während die Syntaxversion 2 nach Zeichenketten sucht, die <suchzeichen> enthalten.
Leerzeichen direkt hinter FIND werden ignoriert. Ein Anführungszeichen hinter FIND ist nicht Teil der Suchzeichen; es dient nur zum Einschalten des Quote-Modus.
Wer in seinem Programm (alle) Stellen sucht, an denen ein bestimmter String oder ein bestimmter Befehl steht, der muss FIND benutzen. FIND ist für den den Direktmodus gedacht, funktioniert aber auch in einem Programm, aber das Kommando kehrt danach unmittelbar in Direktmodus zurück.
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 der BASIC-Funktion INT, dann wird FIND auch fündig, sofern sie im Programm vorkommt. Sucht man allerdings mit FINDINT
nach der Zeichenfolge "INT", z.B. innerhalb eines Strings, sagen wir im Wort "INTERNATIONAL", dann wird FIND diese Stelle nun nicht anzeigen, da es ja nach dem Token für das Schlüsselwort INT sucht (das den Wert $B5 bzw. 181 hat). In diesem Fall muss man mit FIND"INT
suchen.
FIND gibt die Zeilennummern der Fundstellen im Tabulatorabstand aus, also vier Fundstellen-Zeilennummern pro Bildschirmzeile.
Anmerkungen:
- Ein typischer Fehler ist es, wenn man z.B. nach dem String "NAT" mit
FIND"NAT"
sucht, denn das abschließende Anführungszeichen wird nun in die Suchzeichen aufgenommen und man sucht tatsächlich nachNAT"
. - In einer Programmzeile hinter REM sucht man normalerweise mit der FIND"-Variante, da ein Befehlswort hier nicht in ein Token gewandelt wird. Zu beachten ist allerdings der im zugehörigen Artikel demonstrierte Sonderfall bei Groß-/Kleinschreibung.
- Unterschiede zum FIND des Simons Basic:
- Natürlich findet FIND auch SBX-Token.
- Mit FIND"<suchzeichen> werden auch beliebige Teile von Zeichenketten gefunden. Die Standardversion integriert fälschlicherweise das führende Anführungszeichen in die Suchzeichen, so dass nur Teile gefunden werden, die am Beginn der Zeichenkette liegen.
- Leerzeichen zwischen FIND und den Suchzeichen bzw. dem Anführungszeichen werden nun ignoriert.
- Der verbesserte FIND-Befehl ist im SIMONS' BASIC EXTENSION USER GUIDE nicht dokumentiert.
Beispiele[Bearbeiten | Quelltext bearbeiten]
FIND
listet ausnahmslos alle Programmzeilen.
FIND"
findet alle Strings im Programm.
FIND POKE
zeigt die Stellen an, die den BASIC-Befehl POKE enthalten.
FIND GET A$
zeigt die Stellen an, welche die Anweisung "GET A$" enthalten.
FIND"WAS
durchsucht das Programm nach der (Teil-)Zeichenfolge "WAS".
* | ADD ALL | ADD ARR | ALTER | BACK | BARRIER | BCKFLASH | BEEP | BIN$ | CALCX | CALCY | CCOL | CHAIN | CHANGE | CLEAR | CONTINUE | COPY ARR | CREATE | DEEK | DEG | DELETE | DIV ALL | DIV ARR | DOKE | DRAW TO | DS$ | ECOL | ELEMENTS | EVAL | FILTER | FIND | FONT | FORCE | GRAD | GRID | HELP | HEX$ | HIMEM | HLIN | HLOAD | HSAVE | INFO | INIT | INPUT ARR | INVERT | LABEL | LOMEM | LOW RES | MAX | MCOL | MIN | MODE | MUL ALL | MUL ARR | NORMAL | ON DETECT | PREPARE | PRINT ARR | PROTECT | PULL | PULSE | PUSH | READ ARR | RENUMBER | REVERSE | ROTATE | SCALE | SCHR | SCOL | SCRATCH | SCREEN | SCX | SCY | SET ARR | SHOW | SORT | SPRITE | SPR LOC | SPRX | SPRY | START | SUB ALL | SUB ARR | SUM | TICK | TRANSFER | UPPER | VLIN | XVEC | YVEC | ZER ARR |