FIND (SBX)

Aus C64-Wiki
Zur Navigation springenZur Suche springen
FIND (SBX)
Syntax: 2 Versionen:
  • FIND<suchzeichen>
  • FIND"<suchzeichen>
Parameter
suchzeichen: gesuchte Zeichenfolge
Einordnung
Typ: Kommando
Kontext: Programmierhilfe
Aufgabe: Suchen von Programmstellen
Abkürzung: keine
Token: $65 $6c (101 108)
Verwandte Befehle
ALTER (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 nach NAT".
  • 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".