Skript-Hilfe: Nachbearbeitungsskript - Element löschen

Hallo in die Runde,

folgendes Problem.
Ich möchte ein Nachbearbeitungsskript nutzen, dass am Ende der Planung alle Elemente, die den Titel “Leer-Drop” haben, gelöscht werden.
Folgendes habe ich geschrieben. mAirList wirft auch keinen Fehler aus, funktionerit aber dennoch nicht.

var
  Title: string;
  i: Integer;
begin
  Title := 'Leer-DROP';
  for i := 0 to CurrentPlaylist.GetCount - 1 do
  begin
    if CurrentPlaylist.GetItem(i).GetTitle = Title then
    begin
      CurrentPlaylist.Delete(i);
      
      exit;
    end;
  end;
 
end.

Danke im Voraus.

Nach dem ersten Element (Nr. 0) kommt ein exit-Kommando, und das Skript bleibt stehen. Außerdem solltest Du aus Sicherheitsgründen Begin.Update und EndUpdate verwenden, etwa so:

const
  TITLE = 'Leer-DROP';
var
  i: Integer;
begin
  try
  CurrentPlaylist.BeginUpdate;
  for i := 0 to CurrentPlaylist.GetCount - 1 do
    if CurrentPlaylist.GetItem(i).GetTitle = TITLE then
      CurrentPlaylist.Delete(i);
  finally
    CurrentPlaylist.EndUpdate;
  end;
 
end.

(Völlig ungetestet am Schreibtisch entstanden.)


Edit: Überflüssige Zeilen entfernt, Reihenfolge geändert.

Edit 2: Gleichheitszeichen korrigiert.

2 Likes

Herzlichen Dank.
Ein Edit war noch in Zeile 2 nötig: := zu =.

Stimmt, danke. Blindes copy-and-paste eben. Funktioniert es denn?

Funktioniert ausgezeichnet, radiologisches Dankeschön :slight_smile:

2 Likes