ich möchte einen rtf-export mit u.a. script machen.
funktioniert eigentlich ganz gut, bis auf ...
wenn sich das album ändert, der artist allerdings gleich bleibt,
dann gibt's keine neue überschrift (%artist% / %album% [%year] ...),
sondern die tracks werden beim vorherigen album drangehängt;
weil die variable zw-album auch bereits auf %album% geändert wurde (habe ich getestet)
obwohl das erst beim nächsten $if passieren sollte.
frage: ist mein $if falsch, oder wo sonst ist der fehler ? - danke
Bisher war es so, dass die Funktionen $put und $puts nicht als Argument innerhalb einer anderen Funktion benutzt werden können.
So muss man die Befehlsfolgen anders gestalten ...
$put(Variablenname,$if(Bedingung,ErgebnisJa,ErgebnisNein))
Siehe auch ... Check if field value is identical for all selected tracks
Anmerkungen ...
Im Skript scheinen zwei schließende Klammern zu fehlen, jeweils zu $if().
$mid(%_filename%,1,12) kann man vereinfachen zu $left(%_filename%,12).
$if($strcmp('a','b'),'J','N') ergibt 'N' bzw. $if($strcmp('a','a'),'J','N') ergibt 'J'
Würde da nicht einfach eine weitere Schleife helfen?
$loop(%artist%)%artist%$loop(%album%)Überschrift %album%$loop(%track%)%track% - %title%
$loopend()$loopend()$loopend()
Nur so als Philosophie:
Es gibt mehrere 1:n-Beziehungen zwischen Künstlern und ihren Stücken. Und dementsprechend kannst du die Schleifen mit $loop() machen.
es gibt viele Künstler -> $loop(%artist%)
1 Künstler hat n Alben -> $loop(%album%)
1 Album hat n Titel -> $loop(%track%)
Und jetzt kannst du vor jedem $loop() eine Kopfzeile definieren, die immer nur dann kommt, bevor die Schleife das nächste Mal durchlaufen wird.
oder hinter dem jeweiligen $loopend() eine Fußzeile, die dann die Zusammenfassung für die Schleife liefert.
Das $loop-Kommando führt eine eigene Sortierung durch, würde also (nach meinen 3 Schleifen) erst alle Künstler sortieren, dann die Alben alphabetisch, dann die Tracknummer.
Oder anders: die können sonstwo im Dateisystem verstreut liegen, wenn keine Eigenschaft des Dateisystems verwendet wird, sondern interne Tag-Felder.
(vielleicht wäre hier $loop(%artist%,1) sogar noch besser, dann wird jeder Künstler nur 1x gezeigt ... musst du mal probieren).
Oder noch anders: ich würde für die Sortierung, die am Ende den Inhalt der Tags ausgeben soll, keine Dateisystemeigenschaften verwenden.
danke für die tipps.
habe mich etwas (länger) gespielt mit deinem Vorschlag.
jetzt passt's.
hier das script (vielleicht kann's ja jemand brauchen):
$filename(rtf,ansi){\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fprq2\fcharset0 Tahoma;}}
\viewkind4\uc1\pard\b\f0\fs32 %_workingpath% - Dateiübersicht\par
\b\f0\fs21
(sortiert nach Artist, Album, Disc- und Tracknummer)\par
\b0\fs20\par