$if Anweisung


#1

Hallo liebe Gemeinde!

Ich beschäftige mich schon ein wenig mit mp3Tag und bin dabei meine mp3 Sammlung ordentlich zu organisieren.

Dadurch ist es zum Beispiel notwendig, dass ich im Feld %compilation% erfasse ob es um eine Interpreten CD oder Sampler CD handelt (nach dem großartigen Strukturmodell von mbaa3).

Die Anweisung möchte ich mit einer $if Anweisung erstellen.

$if($eql(%albumartist%,Various Artists),2,1)funktioniert aber leider nicht.

Kann mir jemand helfen, auch wenn es vermutlich nur ein Knopf in meiner Leitung ist? :unsure:

Danke euch schon vorab!

Gruß
Örvin


#2

schön ist, wenn man die Antwort noch selbst findet!

$if($eql(%albumartist%,Various Artists),1,0)lautet es richtig, denn das Feld Compilation kennt nur 0 und 1  <img src="/uploads/default/original/1X/3a79e8b0b7d169b30216785521d7c6f4f895c421.gif" width="20" height="20" alt=":rolleyes:" title=":rolleyes:"/> 

habe ich nicht gewusst!

jetzt passts aber!

Danke trotzdem fürs lesen :slight_smile:
vielleicht hilfts ja wem anderen zum nachlesen!

Gruß
Örvin


#3

Ich werde aus der Beschreibung nicht so ganz schlau.
Die $if-Anweisung erzeugt eine 2, wenn der ALBUMARTIST "Various Artists" heisst, andernfalls steht eine 1 da.
Aber wo gibst du das ein?
Nach meiner Meinung müsste das der Inhalt für COMPILATION im Rahmen einer Aktion des Typs "Tag-Feld formatieren" sein.
Allerdings ist die 2 eigentlich falsch, da die Programme, die COMPILATION auswerten, nur auf "1" reagieren und etwas nicht als COMPILATION wahrnehmen, wenn COMPILATION fehlt.
Auch erscheint es mir, dass dann dasselbe Datum eigentlich doppelt vorhanden ist: entweder setzt du den ALBUMARTIST oder COMPILATION. Beides ist eigentlich überflüssig (es sei denn, es soll auf jedem Player gehen, dann ist allerdings wiederum COMPILATION überflüssig ...)


#4

Was bedeutet "funktioniert aber leider nicht"?
Was ist das Ergebnis dieses Skriptausdrucks?

$eql() ist eine Funktion, die zu den "Boolesche Funktionen" gehört.
Vielleicht benötigst du eher eine Funktion aus den "String-Funktionen" ... $strstr ... $replace?

$if($eql($strstr(%ALBUMARTIST%,'Various Artists'),1),2,1) $ifgreater($len($replace(%ALBUMARTIST%,'Various Artists',)),0,1,2) $if($eql(%ALBUMARTIST%,'Various Artists'),2,1)

... liefern alle dasselbe Ergebnis ...
wenn im Tag-Feld ALBUMARTIST der Text "Various Artists" eingetragen ist, dann schreibe eine '2', wenn nicht, dann schreibe eine '1'.

DD.20121031.2050.CET


#5

Hallo!

Mit dem Skriptausdruck $if($eql(%albumartist%,Various Artists),1,0)
erhalte ich bei allen Samplern im Feld %compilation% eine 1, bei allen Interpreten CDs eine 0.
Im Feld %comilation% kann bei mir keine 2 dargestellt werden. (das wollte ich mit meinem Antwortpost mitteilen)

Über den Konverter Tag -> Dateiname lasse ich mir entsprechend meiner Struktur eben mittels $if($eql(%compilation%,0),Interpret,Sampler) durch diese vorher hinterlegte 1 oder 0 den Ordner Interpret bzw. Sampler anlegen.

Meine Struktur sieht derzeit so aus %fileowner%$if($eql(%compilation%,0),Interpret,Sampler)$left(%albumartist%,1)\%albumartist%\%partinset%(%year%) %album%\%artist%[ - %album%][ - $add(%track%,$mul(%discnumber%,100))][ - %title%]

Einzig wenn ich jetzt für Sampler und Interpret eine eigene Unterstruktur realisieren möchte muss ich mir noch entsprechende Gedanken machen, ob die $if Anweisung im Konverter Tag -> Dateiname Formatstring so klappt. Aber das teste ich noch :rolleyes:

So sattelfest bin ich noch nicht, möchte das alles Schritt für Schritt erlernen und vor allem verstehen. Hab mit Anweisungen bisher überhaupt keine Erfahrung, bin aber am Thema interessiert.

Gruß
Örvin


#6

Danke für die Anerkennung. Tatsächlich habe ich lange an meiner MP3-Ordner-Sruktur gearbeitet und diese immer wieder verfeinert. Wichtig war mir, dass keine Ergänzungen.