Inhaltsverzeichnis
DeleteStr()
Einleitung
Dieser Befehl aus den Standardfunktionen dient dem löschen einer ganzen oder des Teils einer bereits existierenden Zeichenkette.
Syntax
Befehl | DeleteStr ( s1:String, pos:Integer, count:Integer ) |
---|---|
Funktion | Löscht eine vorgegebene Anzahl Zeichen 'count'aus einer Zeichenfolge 's1' beginnend an der mit 'pos' definierten Stelle. |
Rückgabewert |
Codebeispiel
Aus der Zeichenkette 'Rennbahnzeitmessung Cockpit-XP V2.' eingefügt, werden alle Zeichen nach 'Rennbahnzeitmessung' entfernt.
var Text1 : String; Text2 : String; Textlaenge : Integer; posLeerzeichen : Integer; deleteCount : Integer; begin Text1 := 'Rennbahnzeitmessung Cockpit-XP V2.'; Text2 := Text1; Textlaenge := Length( Text2 ); posLeerzeichen := Pos( ' ', Text2); deleteCount := Textlaenge - posLeerzeichen; DeleteStr( Text2, posLeerzeichen, Textlaenge - posLeerzeichen ); cpShowMessage('Text 1: '+Text1+Chr(10)+Chr(13)+ 'Länge Text: '+IntToStr(Textlaenge)+' Zeichen.'+Chr(10)+Chr(13)+ 'Gelöscht : '+IntToStr(deleteCount)+' Zeichen.'+Chr(10)+Chr(13)+ 'Text 2: '+Text2); end.
Hinweise
Befehl funktioniert nur mit lokalen Variablen. Package-Variablen werden NICHT unterstützt!
Zuerst wird die Länge der Zeichenkette mit der Length() ermittelt.
Zum Löschen aller Zeichen nach 'Rennbahnzeitmessung' orientieren wir uns wieder am Leerzeichen nach diesem Begriff. Die zu löschende Anzahl Zeichen berechnen wir durch einfache Subtraktion der gefundenen Position mit Hilfe der Pos() von der Länge des gesamten Textes.
Da dieses Ergebnis das Leerzeichen mit einschließt, sind keine weiteren Berechnungen erforderlich.
Der Unterschied zum Delete Befehl ist mir persönlich unklar. Beide machen irgendwie das gleiche. Da die offizielle Delphi-Dokumentation diesen Befehl nicht enthält, ist er wohl eher Teil der AddOn-Scriptsprache.