Help - Search - Members - Calendar
Full Version: Feldnamen aufgrund einer Bedingung ausleeren
Mp3tag Forums > Mp3tag - Deutsch > Allgemein
gekap
ich habe alle meine MP3s mit folgenden Filenamen generiert, z.B.

(101) Why Did You Do It - Stretch (20 Jahre U4).mp3 -> also (TrackNr.) Titel – Interpret (Album).mp3

ich generiere die Tracknummer 3-stellig wenn ein Album aus mehreren CDs besteht, wobei dann die 1. Stelle die Disc-Nummer ist, und 2-stellige wenn das Album nur aus einer CD besteht. Ich habe eine Aktion erstellt die aus dem Dateinamen das DISCNUMBER-Tag automatisch befuellt, und zwar setzt der Ausdruck bei 3-stelligen Tracknummern die erste Ziffer der Tracknummer als DISCNUMBER, bei 2-stelligen Tracknummern immer "1". Der Ausdruck schaut so aus, und funktioniert problemlos:

DISCNUMBER: $if($eql($strchr(%_filename%,')'),4),1,$right($left(%_filename%,2),1))

jetzt wuerde ich aber gerne bei 2-stelligen Tracknummern nicht "1" reinschreiben, sondern gar nichts, und noch dazu das Tag DISCNUMBER leeren falls schon was drinsteht, und das schaffe ich in dem Ausdruck nicht. Hat wer eine Idee dazu? Die Moeglichkeit in der Aktionsgruppe vorher noch eine Aktion einzufuegen die das Feld immer leert besteht sicher, gefaellt mir aber nicht, da bei jedem Durchlauf durch viele MP3s jedesmal das Tag 2x geschrieben wird - kostet Zeit und ist "unschoen"?

danke fuer die Hilfe, lG Gerald
pone
ZITAT(gekap @ Feb 23 2012, 17:24) *
Die Moeglichkeit in der Aktionsgruppe vorher noch eine Aktion einzufuegen die das Feld immer leert besteht sicher, gefaellt mir aber nicht, da bei jedem Durchlauf durch viele MP3s jedesmal das Tag 2x geschrieben wird - kostet Zeit und ist "unschoen"?


Das ist nicht richtig. Per Aktiongruppe wird der ID-Tag nur einmal geschrieben, und zwar mit dem Endergebnis. Der Rest findet im Arbeitspeicher statt.
gekap
ZITAT(pone @ Feb 23 2012, 17:34) *
Das ist nicht richtig. Per Aktiongruppe wird der ID-Tag nur einmal geschrieben, und zwar mit dem Endergebnis. Der Rest findet im Arbeitspeicher statt.


vielen Dank fuer den Hinweis, das wusste ich nicht! Mittlerweile habe ich aber das Problem selbst loesen koennen, ich habe einfach viel zu kompliziert gedacht ;-) der folgende Ausdruck unterscheidet sich von dem bereits geposteten nur dadurch, dass in der "if"-Abfrage der "then"-Wert (logisch gesehen) einfach ausgelassen wird, und nur der "else"-Wert mit Stringoperationen aus dem Filenamen gebildet ins Tag geschrieben wird - das bewirkt genau das was ich will: das Tag DISCNUMBER wird bei zutreffen von "then" nicht beschrieben, und auch geleert falls schon was drinsteht! - funzt super:

DISCNUMBER: $if($eql($strchr(%_filename%,')'),4),,$right($left(%_filename%,2),1))

danke und lG Gerald
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2014 Invision Power Services, Inc.