ich hab' ein kleines Problem beim zuordnen von Images als (Front-)Cover, hoffe, da kann mir jemand weiterhelfen...
Vorweg, meine Struktur sieht zu 95% folgendermaßen aus (ich hoffe, verständlich notiert):
Artist\Album[cdN]\audiofiles.*
cdN --> optional, enthält die cd-nummer (z. b. cd01, cd02, usw. usf.)
die Images für's cover haben folgenden aufbau: artist - album -cover.[jpg|png]
Die Cover ordne ich per Aktion mit folgendem String / Code zu: ..*%album%* -cover*
Das klappt i. d. R. auch gut, habe allerdings Probleme, wenn im Pfad nun doch noch ein Folder namens "cdN" vorhanden sein sollte, denn dann passt mein relativer Pfad nicht mehr. - Mach ich den wieder so, dass dafür passt (ein weiteres ".." rein), dann passt wiederum nicht mehr bei den Files ohne "cdN". Ich dachte mir, dass man da evtl. eine Abfrage nimmt, a la "if(%_folderpath% has|contains|whatever...,...,...), scheitere aber daran.
Ist der Ansatz überhaupt korrekt, bzw. möglich, dass ich innerhalb der Aktion ein 'if...' nutze?
wenn ich auf "cdN" abfrage, dann muss das ja irgendwie mit einem regulären Ausdruck passen, also in etwa "cd+[0-9]", oder.
ich hätte jetzt für die erste Alternative in der if-Abfrage "....*%album%* -cover*", für die zweite "..*%album%* -cover*" genutzt
kann mir vllt. jemand auf die Sprünge helfen? - Wär' toll...
habe mal testhalber in ein temporäres Feld $strchr(%_directory%,cd+[0-9]) per Tag-Feld formatieren setzen lassen, da wird mir schon korrekt '0' bzw. '1' ausgegeben. Allerdings zeigt if($strchr(%_directory%,cd+[0-9])>0,2hoch,1hoch) nur sich selbst, die function strchr ausgewertet an (if(0>0,2hoch,1hoch), bzw. if(1>0,2hoch,1hoch)).
mit dem Konstrukt aus dem verlinkten Thread komm' ich nicht weiter, und dein zweiter vorschlag liefert folgendes:
Album-Cover aus Datei importieren "$if($eql($left($lower(%_directory%),2),'cd'),'..','.')'*%album%* -cover*'" (Front Cover): Auf die Datei F:\work\temp\artist\album.*%album%* -cover* kann nicht zugegriffen werden.
Album-Cover aus Datei importieren "$if($eql($left($lower(%_directory%),2),'cd'),'..','.')'*%album%* -cover*'" (Front Cover): Auf die Datei F:\work\temp\artist\album\cd01..*%album%* -cover* kann nicht zugegriffen werden.
Album-Cover aus Datei importieren "$if($eql($left($lower(%_directory%),2),'cd'),'..','.')'*%album%* -cover*'" (Front Cover): Auf die Datei F:\work\temp\artist\album\cd02..*%album%* -cover* kann nicht zugegriffen werden.
bin ja durchaus gewillt, dies zu tun und auch dabei, aber sobald ich eines dieser Konstrukte nutze, die im Grunde genommen schon korrekt unterscheiden (entweder "$if2($eql($left($lower(%_directory%),2),'cd'),'..')'..*%album%* -cover*'" oder "if2($strchr(%_directory%,cd+[0-9]),'..')'..*%album%* -cover*'" klappt ja die Ausführung von "..*%album%* -cover*" nicht mehr, wie wenn es alleine steht. Und dort ist mein Problem...
Der Formatstring enthält mehrmals Sternchen * Zeichen. Wofür sollen die gut sein?
Das Sternchen gehört zu den nicht erlaubten Zeichen in Dateipfadnamen.
Siehe auch dort ... [F] $validate() broken?
In der Aktion "Album-Cover aus Datei importieren" muss der "Formatstring für Cover-Dateiname" eindeutig zu einer existierenden Datei führen.
Da sind überall zu viele Apostrophe drinn am Ende bzw. falsch platziert:
Sonst wird %album% nicht ausgewertet.
z.B.
$if($eql($left($lower(%_directory%),2),'cd'),'..','.')'*%album%* -cover*'
muss so ein:
$if($eql($left($lower(%_directory%),2),'cd'),'..','.')*%album%* -cover*
oder die Variante: Wenn 'cd' vorhanden dann 2x '..' - sonst 1x
wie dano schreibt, sind wildcards. Und mich wunderte eben, warum der String "..*%album%* -cover*" einzeln funktionierte, aber nicht in der unterscheidung. - Hatte aber auch nicht gesehen, dass die apostrophe falsch waren. - Wenn ich das gesehen hätte, wäre deine vorgeschlagene Lösung ja auch korrekt gewesen.
kleiner Hinweis an dieser Stelle zum Einsatz von diesen Wildcards:
wenn zwei jpg-Cover vorhanden sind ("artist - albumtitel -cover.jpg" & "artist - albumtitel -cover II.jpg"), dann wird das zweite jpg-File genommen
wenn zwei Cover vorhanden sind ("artist - albumtitel -cover.jpg" & "artist - albumtitel -cover.png"), dann wird das jpg-File genommen