Per Script Dateipfade auslesen und Dateien einfügen

Hallo in die Runde,

nur ganz kurz :wink:
Wie kann man denn ein txt-File einlesen und die dort beschriebenen Pfade nutzen, um die entsprechenden Dateien hinter das aktuell ausgewählte Element zu importieren?
Im txt-File stehen zwischen 1 und 8 Pfade, jeweils 1 pro Zeile.

Danke schon mal für die Hilfe.

Eine Textdatei mit einem Dateinamen pro Zeile - das ist eine M3U-Datei, oder? Die lassen sich natürlich irgendwie einlesen.

Probleme gibt es vermutlich bei dem “aktuell ausgewählten Element”, denn Scripts haben - aus technischen Gründen - keinen Zugriff auf die GUI und wissen nicht, was der Nutzer dort gerade angeklickt hat.

Und wenn ich vorher den Titel des gewählten Elements ausgelesen hätte und somit im Script bereitstellen würde? Also quasi „suche das Element mit diesem Titel und füge danach ein“?!

Wie liest Du denn den Titel aus? Das Problem ist damit nur verlagert.

Mmh stimmt…
Dann versuche ich mal eine andere Überlegung.
Wie kann ich denn per Script eine m3u-Playliste an eine bestimmte Stelle ins Playout befördern? Sagen wir die Stelle hätte den Titel MODBREAK oder irgend ein besonderes Attribut? :sweat_smile:

Ich hab die Nummer jetzt so gelöst, ohne Auswahl…
Habe dennoch zwei Fragen, eventuell weißt du Rat?!

var
    i: integer;
    ts: TStringList;
    item: IPlaylistItem;
   
begin
  // Durchsuche die aktuelle Playlist
  for i := 0 to CurrentPlaylist.GetCount - 1 do
  begin
    item := CurrentPlaylist.GetItem(i);
   
    if item.GetTitle = 'Platzhalter' then
    begin
 
      SystemLog(item.GetMetadata.GetStartTime(sttCalculated));
      // Füge eine Datei hinter dem gefundenen Element ein
      CurrentPlaylist.Insert(i + 1, Factory.CreateFilePlaylistItem('D:\Backup\Musik Neu\80er\Survivor - Burning Heart.mp3', [fitAutoCue]));
 
      break;
    end;
  end;
end.

Ich versuche ja die Startzeit, also die voraussichtliche, herauszufinden, aber bekomme es irgendwie nicht hin. Hatte ein paar Sachen aus dem Forum probiert, aber irgendwo hängt es.

Tja, wenn ich nicht weiß, was nicht funktioniert, kann ich kaum Rat geben. Was mir auffällt, ist das SystemLog-Kommando: Das geht nur mit Strings, Du müßtest also etwa

SystemLog(FormatDateTime('hh.nn.ss', item.GetMetadata.GetStartTime(sttCalculated)));

schreiben. (Ungetestete Schreibtischtat.)

Danke für den Anstoß :slight_smile:

SystemLog(FormatDateTime('hh.mm.ss',(CurrentPlaylist.GetMetadata(i).getStartTime(sttCalculated))));

So funktioniert es jetzt.

Korrigiere ‘hh:nn’ muss es natürlich sein