Scripte laufen unter V. 3 nicht mehr. - Wer kann helfen?

Hallo.

Einige unserer bewährten Scripte laufen unter Version 3 nicht mehr.
Da Torben wenig Zeit hat, meine Frage in die Runde:
Kann jemand helfen?
Einige Scripte stammen von Michi.

Hier Nummer 1:

Fehlermeldung
“Error running script: [Fehler] (38:49) Unknown identfier ‘sttEstimated’”

Script:

[code][i]{um mehr brückenelemente hinzuzufügen einfach
#1. array erweitern
#2. pfad[id] := ‘pfad’ hinzufügen
#3. bei url den ‘max-wert’ ändern
#4. ggf die if bedingung ändern, rauslöschen, je nach anwendung
#5. fertig
#—Stand: 13.04.2008— michi
}

procedure Einfuegen(index: Integer);
var i : Integer;
pfad: Array[0…2] of string; //
begin
pfad[0] := ‘Y:\Trailer\jingle-backtimer_fable.mp3’;
pfad[1] := ‘Y:\Trailer\jingle-backtimer_news.mp3’;
pfad[2] := ‘Y:\Trailer\jingle-backtimer_soft.mp3’;
i := Random(2);
try
CurrentPlaylist.InsertFile(index, pfad[i], eaNone);
except
SystemLog(‘Fehler beim Einfügen.’);
end;

end;[/i]

var //variabeln fuer die suche nach dem letzten element der laufenden Stunde
nextHour: TDateTime;
jetzigeStunde: Integer;
jetzt: TDateTime;
i: Integer;
begin
jetzigeStunde := StrToInt(FormatDateTime(‘h’, now));
nextHour :=EncodeDate(1899, 12, 30);
nextHour := nextHour + EncodeTime(jetzigeStunde,0,0,0)+ + 0.0416666666;
for i:=0 to CurrentPlaylist.GetCount-1 do begin
if (CurrentPlaylist.GetItem(i).GetStartTime(sttEstimated) > (nextHour-0.000694444)) and (CurrentPlaylist.GetItem(i).GetStartTime(sttEstimated) < (nextHour)) then begin
Einfuegen(i);
CurrentPlaylist.GetItem(i).SetColor(clYellow);
CurrentPlaylist.GetItem(i).SetColored(true);
end;
end;
end.[/code]

Script 2

Fehlermeldung:
[i]> Fehler beim Ausführen der Aktion: [Error] (2:19): Unknown identifier

‘INSERTPLAYLIST’[/i]

Script:

[code]begin
CurrentPlaybackControl.SetAutomation(true);
CurrentPlaylist.InsertPlaylist(0, Database(0).GetCurrentPlaylist);
CurrentPlaybackControl.AutomationNext;
end.

/*

BeitragVerfasst am: Mi, 25. Okt 2006, 23:21
So, es gibt (halbe) Neuigkeiten. Ich habe das Script-System jetzt so erweitert,
dass man auch Zugriff auf die Datenbanken hat. Prinzipiell kan man nun also mit

Code:
begin
CurrentPlaybackControl.Playlist.InsertPlaylist(0, Database(0).GetCurrentPlaylist);
end.

die aktuelle Datenbank-Playlist einfügen.
Analog gibt es eine zweite Methode GetNextPlaylist für die Playlist der nächsten Stunde.
Allerdings passiert zur Zeit noch nichts,
weil beide Methoden sowohl für die eldoDB als auch für die radioDB noch nicht implementiert sind.
Das hole ich aber bald nach.

Torben

Hab ich das richtig verstanden,
“GetCurrentPlaylist” hängt genau die Playlist vom aktuellen Tag und der aktuellen Stunde hinten dran?

Ja. Und “GetNextPlaylist” die von der nächsten Stunde.

“Ranhängen” ist aber falsch, erstmal wird sie ausgelesen und zurückgegeben,
man kann sie dann aber gleich an Playlist.InsertPlaylist usw. weiterreichen.

Torben

*/[/code]

Und Nummer 3:

[code]“Fehler PLAYBACKCONTROL_PLAYLISTEMPTY 0 Null Pointer Exception”

Script:
{-------------------------------------------------------------------------------
PlaylistEmpty.mls - Notification Script for mAirList

Loads an emergency playlist when a playlist has run empty during automation.

Author: Torben Weibert torben@weibert.de
Date: 2007-12-28

See http://www.mAirList.com for further information.
-------------------------------------------------------------------------------}

procedure OnPlaylistEmpty(PlaybackControl: IPlaybackControl; Playlist: IPlaylist);
begin
Playlist.LoadFromFile(‘Y:\Verzeichnisse\mAirList\playlists\Playlist_Emty\PL_Emty_’ + FormatDateTime(‘HH’, now) + ‘.mld’);
end;

begin
end.[/code]

Wäre schön wenn ich die Scripte am WE wieder an den Start bekommen würde, da ich dann auf die Version 3 umstellen möchte.

Danke im Voraus

Hallo Marco,

das ist eine gute Idee, dass du parallel hier im Forum fragst, ich bin gerade wirklich zeitlich knapp dran.

Aber warum postest du dann hier wieder die ursprünglichen Scripts? Etliche Dinge, zum Beispiel das mit InsertPlaylist und InsertList, hatten wir doch per E-Mail längst geklärt.

Außerdem noch ein Tipp: Es gibt im Forums-Editor eine spezielle Code-Umgebung (der Button mit dem #-Zeichen). Dadurch werden die Scripts noch einfacher lesbar, wenn du sie hier reinstellst.

Hallo Torben.

Weil die vermuteten Abänderungen nicht funktioniert haben.
Sollte ich an der einen oder anderen Stelle zuviel geändert haben,
hätte ich ja falschen Code gepostet.

Ich habe nur noch dieses Wochenende die Möglichkeit auf V3 umzustellen.
Bitte postet wer eine Ahnung hat was geändert werden muss.

Danke.

Torben hatte bisher folgende Tipps gegeben:

> 15.07.2009 10:53:00 Fehler Fehler beim Ausführen der Aktion Script > ausführen (Y:\Verzeichnisse\mAirList\scripts\brueckenelement.mls): > [Error] (19:48): Unknown identifier 'eaNone'

Zeile 19 wie folgt ändern:

     CurrentPlaylist.InsertFile(index, pfad[i]); 

(Parameter “eaNone” entfällt.)

Eine weitere Fehlermeldung ist
15.07.2009 10:55:52 Fehler PLAYBACKCONTROL_PLAYLISTEMPTY 0 Null
Pointer Exception

Der Fehler liegt vermutlich in der Datei
J:\mAirList-3.0.5\scripts\notification\PlaylistEmpty.mls. Die hattest du
mir bislang nicht zugeschickt.

Ich tippe mal darauf, dass der Funktionskopf von OnPlaylistEmpty
folgendermaßen angepasst werden muss:

[code]procedure OnPlaylistEmpty(PlaylistIndex: integer);

Evtl. noch mehr. [/code]

[i]> Fehler beim Ausführen der Aktion: [Error] (2:19): Unknown identifier

‘INSERTPLAYLIST’

Ersetze in allen Scripts “InsertPlaylist” durch “InsertList”.

[hr]
Die Datei “Brueckenelement” habe ich geändert.
Nun bekomme ich ein “Error running script: [Fehler] (38:49) Unknown identfier ‘sttEstimated’”

PlaylistEmpty
Geändert, jedoch gibt es jetzt ein
“Error running script: [Fehler] (14:11): Invalid number of parameters”

Datenbank Playlist laden:
Keine Reaktion (DB Playlist ist vorhanden!), keine Fehlerausgabe.