INST

Aus C64-Wiki
Zur Navigation springenZur Suche springen
INST
Syntax: INST(<string>,<altstring>,<pos>)
Parameter
string: Zeichenkettenausdruck
altstring: Zeichenkettenausdruck
pos: Position der Einfügung (0..(LEN(<altstring) - LEN(<string>))
Einordnung
Typ: Stringfunktion
Kontext: Stringbearbeitung
Aufgabe: Veränderung eines Strings
Abkürzung: keine (TSB: inS)
Token: $64 $57 (100 87)
Verwandte Befehle
INSERT - PLACE


Dieser Artikel beschreibt das Simons'-Basic-Schlüsselwort INST.

Typ: Stringfunktion
Syntax: INST(<string>,<altstring>,<pos>)

Die Funktion INST überschreibt mit der Zeichenkette <string> (erstes Argument) in der Zeichenkette <altstring> (zweites Argument) ab der Stelle <pos> (drittes Argument) die Zeichen der Zeichenkette <altstring>, wobei die Zählung mit 0 beginnt (0 = vor dem ersten Zeichen). Die Länge der Zeichenkette <altstring> ändert sich nicht.

Beachten:

  • Wenn die Zeichenkette <string> an eine Stelle in <altstring> geschrieben werden soll, die <altstring> verlängern würde, wird Simons' Basics String-Verwaltung gestört, was zu einem Absturz führen kann (in TSB behoben, es wird dabei mit der Fehlermeldung ?STRING TOO LONG ERROR abgebrochen).
  • Ist das zweite Argument ein Leer-String, besteht die resultierende Zeichenkette aus 255 zufälligen Zeichen, auch dies kann zu einem Absturz führen (in TSB behoben, auch hier wird mit der Fehlermeldung zuvor abgebrochen).
  • Bei der Verwendung von Stringkonstanten bei beiden Argumenten (<string> und <altstring>) in Simons' Basic liefert die Funktion im Direktmodus falsche Ergebnisse zurück, in TSB wird daher der Direktmodus mit der Fehlermeldung ?ILLEGAL DIRECT ERROR abgewiesen. Ist dagegen eins der Argumente eine Variable, funktioniert der beabsichtigte Vorgang. In TSB kann man dann mit POKE $9d,0 den Programmmodus erzwingen, um die Funktion ohne Fehlermeldung im Direktmodus auszuführen.
  • In TSBneo setzt die Zählung der Zeichen bei 1 für <pos> ein. Damit werden die Zeichen selbst und nicht mehr die Stellen dazwischen adressiert.


In TSB wurde zusätzlich ein Befehl gleichen Namens integriert, siehe INST (TSB).

Beispiel[Bearbeiten | Quelltext bearbeiten]

10 v$=" vor": n$="nachname"
20 r$=INST(v$,n$,0)
30 PRINT "(";r$;")"

Die Variable r$ wird ausgegeben und zeigt dann "( vorname)".