Export: Abschneiden von bestimmten Zeichen am Anfang


#1

Hi,

ich habe mir fußend auf andere Export-Sripte hier ein Skript gebastelt, das mir albumübergreifend die Songs alphabetisch geordnet nach Interpreten exportiert.

Sinn und Zweck einer solchen aphabetischen Liste ist natürlich, den Song intuitiv zu finden und das heißt eigentlich immer nach Anfangsbuchstaben.
Nun gibt es aber Songs, die in korrekter Albumschreibweise dieser intuitiven Ordnung entgegenstehen.

Beispiele:
... and I love her
(I love You) for sentimental reasons

Die würden ja nach alphabetischer Ordnung ganz vorne aufgelistet.
Ich hätte also gerne eine Lösung, die im Beispiel 1 die Punkte incl. space und im Beispiel 2 die Klammern entfernt, wenn der Song mit einer einleitenden Klammer anfängt, usw.
Im Beispiel 2 wäre natürlich alternativ auch eine Lösung denkbar, die das Eingeklammerte einschließlich Klammern und anschließendem Leerzeichen komplett entfernt.
Als Anfangszeichen eines Songs sollen also nur Zahlen und Buchstaben gültig sein, alles andere soll entfernt werden und der Anfangsbuchstabe soll auch groß geschrieben werden.

Vermutlich geht das wieder über so einen verschachtelten regulären Ausdruck, den doch wahrscheinlich vor ähnlicher Aufgabe stehend schon mal jemand geamcht hat, oder?

Und um es nicht zu einfach zu machen. :wink:
Wäre es auch möglich, bestimmte Songs im Loop einfach auszulassen?
Beispiel:
Bei Live-Alben gibt es oft Kurztracks mit Namen wie z.B. "Intro", nach denen man bestimmt in einer Songliste nicht sucht.


#2
$regexp(%TITLE%,'^[\W]*(.*)$','\u$1')

Siehe Mp3tag Manual, Skriptbefehle, z. B. $if, $eql, $strstr, $left usw.

DD.20120501.1017.CEST

Edit.
Um im Export Skript die Abfrage nach den Sonderfällen nicht so schreibintensiv behandeln zu müssen, kannst du vorher in den Musikdateien ein Hilfs-Tag-Feld einrichten, das ein Merkmal enthält, was schließlich im Export-Skript dafür sorgt, dass diese Datei beachtet bzw. nicht beachtet wird.
Beispiele:
Ein Tag-Feld EXPORT anlegen mit den Werten 0 oder 1.
Ein Tag-Feld EXPORT_YES anlegen in den Dateien, die im Export-Skript beachtet werden soll,
Ein Tag-Feld EXPORT_NO anlegen in den Dateien, die im Export-Skript nicht beachtet werden soll.

Dann reicht es aus, im Export-Skript zu fragen ...
$if(%EXPORT_NO%,'do nothing','do something')

DD.20120501.1252.CEST


#3

Danke.
Das deckt also schon mal mein Beispiel 1 ab. Für Beispiel 2 ist es weniger geeignet, da halt unschön die schließende Klammer verbleibt.
Ist es überhaupt möglich, diese Logik der öffnenden und schließenden Klammer zu coden?
Ein reines Ersetzen bringt ja nicht in allen Fällen das gewünschte Resultat, da ja im Titel noch weitere Klammern folgen könnten, die erhalten bleiben sollen.

Da muss ich mal in Ruhe mit rumexperimentieren. Meine Probleme fangen in der Regel dann an, wenn zu viele Verschachtelungen anzuwenden sind.


#4

Wenn du die runde öffnende Klammer zulassen willst, dann ....

$regexp(%TITLE%,'^[^(\w]*(.*)$','\u$1')

Wenn die ersten beiden runden Klammer entfernt werden sollen, dann ...

$if($eql($left(%TITLE%,1),'('),$regexp(%TITLE%,'^\((.+?)\)','\u$1'),$regexp(%TITLE%,'^[\W]*(.*)$','\u$1')) $if($eql($left(%TITLE%,5),'Intro'),'do this','do that') $ifgreater($strstr(%TITLE%,'Intro'),0,'do this','do that')

DD.20120501.1117.CEST


#5

@DetlevD
Vielen Dank für Deine Hilfe.
Ich bin inzwischen etwas pragmatischer und für mich meine Fähigkeiten weniger komplex vorgegangen, indem ich eine Vorauswahl der MP3s, die exportiert werden sollen, mittels Filter vorgenommen habe.


#6

Hallo poster, vielen Dank für deine Rückmeldung.
Mp3tag bietet fast immer mehrere Wege an, eine Aufgabenstellung zu lösen.
Es ist gut, dass du eine Lösung gefunden hast.

DD.20120506.1113.CEST