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.



Start - FAQ - Glossar - Sitemap - Impressum

 
cockpit-xp/addon/standardfunktionen/deletestr.txt · Zuletzt geändert: 2024/06/17 09:22 von slotx