Diskussion:INSERT

Aus C64-Wiki
Zur Navigation springenZur Suche springen

Parameter pos[Quelltext bearbeiten]

Kann der Parameter pos nicht auch den Wert LEN(<altstring>) (statt wie derzeit angegeben (LEN(<altstring>)-1) ) annehmen (d.h. nach dem letzten Zeichen wird angehängt)? Das wäre logisch ... --JohannKlasek (Diskussion) 04:06, 10. Feb. 2020 (CET)

Nein, dann kommt ein insert too large error. Es heißt ja auch *insert* (einfügen), nicht *append* (das machst du weiterhin mit "+". --GoDot (Diskussion) 14:10, 10. Feb. 2020 (CET)
Ja schon, trotzdem wurde der Index 0 "eingeführt" der ebenso ein *append* macht:
C$=INSERT(A$,B$,0)
entspricht doch
C$=A$+B$
Warum dann nicht auch
INSERT(B$,A$,LEN(A$)) ?
Die Einschränkung auf LEN(A$)-1 zerstört gewissermaßen die durchgehende Bedeutung des Parameters "pos", welcher ja auszusagen scheint, dass die einzufügende Zeichenkette nach der pos-ten Stelle eingefügt wird. Da irritiert der "Sonderfall", dass ausgerechnet für pos = LEN(A$) das nicht geht und mit A$ + B$ gesondert behandelt werden muss. Das ist freilich ein Horror, wenn man im sonst schon langsamen BASIC sich auch noch um gewisse Sonderfälle kümmern muss. Schade. :( --JohannKlasek (Diskussion) 12:27, 10. Feb. 2020 (CET)
Ich nehm das mal als Vorschlag, dieses Verhalten zu ändern... smile Danke erstmal! Ich melde mich dann! --GoDot (Diskussion) 14:09, 10. Feb. 2020 (CET)
pro Danke! cool --JohannKlasek (Diskussion) 14:32, 10. Feb. 2020 (CET)

Jepp, und fertig! grins Ich hab dann gleich noch entdeckt, dass Leerstrings in String2 auch nicht aufgefangen werden. Ist auch erledigt. Und noch 8 Bytes Platz gewonnen... --GoDot (Diskussion) 00:05, 11. Feb. 2020 (CET)

insertn.gif

Yeah, genial. Danke! Schau schau, auch noch kürzer. smile
Genau, das ist natürlich das Folgeproblem, wenn b$ leer ist, dann ist 0..(len-1) ein imaginäres Intervall ... super, dass das auch jetzt bereinigt ist! --JohannKlasek (Diskussion) 00:11, 11. Feb. 2020 (CET)