INSERT

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


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

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

INSERT setzt die Zeichenkette <string> (erstes Argument) in die Zeichenkette <altstring> (zweites Argument) ab der Stelle <pos> (drittes Argument) ein, wobei die Zählung mit 0 beginnt (0 = vor dem ersten Zeichen). Die resultierende Zeichenkette ist so lang wie die Summe der beiden Einzelzeichenketten.

Beachten: Wenn die resultierende Zeichenkette die Länge von 255 Zeichen übersteigt, meldet Simons' Basic einen ?INSERT TOO LARGE ERROR (ebenso TSB). Derselbe Fehler wird gemeldet, wenn <string> an <altstring> angehängt werden soll, das Argument <pos> also den Wert LEN(<altstring>) oder größer hat. Ist das zweite Argument ein Leer-String, besteht die resultierende Zeichenkette aus 255 zufälligen Zeichen, dieser Fall wird also nicht abgefangen und führt unter Umständen zum Absturz des Interpreters (beides in TSB behoben).

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.

Beachten: 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 INSERT (TSB).


Beispiel[Bearbeiten | Quelltext bearbeiten]

10 a$="(spitzname) ": b$="vorname nachname"
20 c$=INSERT(a$,b$,8)
30 PRINT c$

Die resultierende Ausgabe ist "vorname (spitzname) nachname".