INST
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)".
$ | % | @ | 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