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 dochC$=A$+B$
Warum dann nicht auchINSERT(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)
- Ja schon, trotzdem wurde der Index 0 "eingeführt" der ebenso ein *append* macht:
- Ich nehm das mal als Vorschlag, dieses Verhalten zu ändern...
Danke erstmal! Ich melde mich dann! --GoDot (Diskussion) 14:09, 10. Feb. 2020 (CET)
Danke!
--JohannKlasek (Diskussion) 14:32, 10. Feb. 2020 (CET)
- Ich nehm das mal als Vorschlag, dieses Verhalten zu ändern...
Jepp, und fertig! 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)
- Yeah, genial. Danke! Schau schau, auch noch kürzer.
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)