Probleme beim Definieren von Aktionen


#1

Geschätzte mp3Tag-Liebhaber

Ich habe Probleme beim Definieren von Aktionen.

Bei einer von mir definierten Aktion habe ich aus versehen die Titel von 465 Dateien verändert. Leider habe ich das erst bemerkt, als das Rückgängig machen schon nicht mehr möglich war. Ich würde nun gerne meine Titel wieder in den ursprünglichen Zustand versetzen.

Zur Zeit sehen die Tags für den Titel folgendermassen aus:
einfaches Beispiel: Anser fabalisSaatgans
komplexes Beispiel: Parus montanus montanusMönchsmeise (Weidenmeise, alpine Form)

Richtig müsste der Tag so aussehen:
Anser fabalis - Saatgans
Parus montanus montanus - Mönchsmeise (Weidenmeise, alpine Form)

Dazu stellt sich mir ein weiteres Problem, für welches ich keine Lösung gefunden habe.

Die Tags der Interpreten sind folgendermassen abgefüllt: "Mönchsmeise (Weidenmeise, alpine Form)"
Die Tags für die Alben können sowohl gefüllt (z.B. "Gesang!, Ruf, Juv., Balz, Paar, Instr.-Laut"), als auch leer sein.
Wie die Titel definiert sind, resp. sein sollten, habe ich im ersten Problem aufgezeigt.

Ich würde die Datein nun gerne in folgender Art abspeichern:
Schwarzspecht - Dryocopus martius - Gesang!, Ruf, Flugruf, Balz, Instr.-Laut.mp3
oder:
Weidenammer - Emberiza aureola.mp3 (wenn der Tag für das Album leer ist)

Ein kleines Problem kommt noch dazu.
Oft besteht der letzte Teil des Albumtags aus "Juv.". Dadurch entsteht beim Erzeugen des Dateinamens eine Datei mit zwei Punkten hintereinander (z.B. "Buntspecht - Dendrocopos major - Gesang!, Ruf, Juv..mp3").
Kann diese "Problemchen" zusammen mit dem Erzeugen der Dateinamen gelöst werden? Oder werden die zwei Punkt-Zeichen hintereinander in einem letzten Schritt separat geändert?

Ich wäre sehr froh, wenn sich für meine Probleme Lösungen finden würden.
Ich muss leider Eingestehen, dass ich es nicht schaffe solch komplexe Änderungen zu definieren. Ich komme mit der Hilfe einfach nicht Zugange.

Viele Dank
Martin


#2

Zunächst erst eine Antwort zu einem Problem, das eigentlich kein Problem ist.
Wenn du dafür sorgst, dass es nicht 'Juv.' sonder 'Juv' heisst, dann wirst du nur einen Punkt sehen, denn der verbindet den vorderen Teil des Dateinamens mit dem hinteren Teil (filebasename = filename.fileextension).
Was dich stört ist allein eine visuelle Angelegenheit, aber technisch vollkommen in Ordnung und stört nirgendwo, und wie gesagt, wenn du dafür sorgst, dass es nicht 'Juv.' sonder 'Juv' heisst, dann ...

Für die anderen Probleme wird es sicher auch bald Antworten geben.

DD.20070228.1613

Edit:
Weiter gehts mit einem Lösungsvorschlag für das Problem der 'zusammengeklebten' Zeichenketten.
Zum Glück gibt es ein Merkmal, aus dem erkennbar ist wo die eine Zeichenkette aufhört und die andere beginnt, nämlich an der Stelle nach dem ersten Großbuchstaben wo der zweite Großbuchstabe steht.
Die folgende Aktionsfolge trennt die lange Zeichenkette auf am Übergang von Kleinbuchstabe zu Großbuchstabe. Wichtig ist, dass am Ende der ersten Teilzeichenkette auch wirklich ein Kleinbuchstabe steht. Wenn das nicht so ist, dann muss der reguläre Ausdruck entsprechend angepasst werden.

Aktion #1:
Aktionstyp: Tag-Felder formatieren
Feld: BIRDER4106_TITLE_NEU
Formatstring: %BIRDER4106_TITLE%

Aktion #2:
Aktionstyp: Ersetzen mit regulären Ausdrücken
Feld: BIRDER4106_TITLE_NEU
Regulärer Ausdruck: ^(\u.+\l)(\u.+)$
Treffer ersetzen durch: $1 - $2

[x] Groß-/Kleinschreibung berücksichtigen

Erst einmal mit einer Testdatei testen, wenn alles richtig funktioniert, dann die Feldnamen anpassen und nochmal testen, wenn alles richtig funktioniert, dann die gesamten 465 Dateien bearbeiten. Aber was rede ich, du wirst ja jetzt sicher etwas besser aufpassen als zuvor.

DD.20070228.2220

Edit:
Aus deinem Beitrag ergibt sich folgendes:

Titel      = %TITLE%      = "Parus montanus montanus - Mönchsmeise (Weidenmeise, alpine Form)"
Interpret  = %ARTIST%     = "Mönchsmeise (Weidenmeise, alpine Form)"
Album      = %ALBUM%      = "Gesang!, Ruf, Juv., Balz, Paar, Instr.-Laut" (oder leer)

Dateiname  = %_FILENAME%  = "Mönchsmeise (Weidenmeise, alpine Form) - Parus montanus montanus - "Gesang!, Ruf, Juv., Balz, Paar, Instr.-Laut"
Dateiname  = %_FILENAME%  = "Weidenammer - Emberiza aureola.mp3" (wenn der Tag für das Album leer ist)

Der Dateiname ist aufgebaut ...

Dateiname  = %_FILENAME%  = %ARTIST% - %ARTIST_LATEIN% - %ALBUM%

... deshalb solltest du ein neues Tag einrichten: '%ARTIST_LATEIN%', und dieses Tag ausschließlich mit der lateinischen Bezeichnung füllen, dann lässt sich sich eigentlich alles andere leicht komponieren.

Alle Aktionen zusammengefasst:

Aktion #1:
Aktionstyp: Tag-Felder formatieren
Feld: BIRDER4106_TITLE_NEU
Formatstring: %BIRDER4106_TITLE%

Aktion #2:
Aktionstyp: Ersetzen mit regulären Ausdrücken
Feld: BIRDER4106_TITLE_NEU
Regulärer Ausdruck: ^(\u.+\l)(\u.+)$
Treffer ersetzen durch: $1 - $2

[x] Groß-/Kleinschreibung berücksichtigen

Aktion #3:
Aktionstyp: Tag-Felder formatieren
Feld: BIRDER4106_ARTIST_DEUTSCH
Formatstring: %BIRDER4106_TITLE_NEU%

Aktion #4:
Aktionstyp: Tag-Felder formatieren
Feld: BIRDER4106_ARTIST_LATEIN
Formatstring: %BIRDER4106_TITLE_NEU%

Aktion #5:
Aktionstyp: Ersetzen mit regulären Ausdrücken
Feld: BIRDER4106_ARTIST_DEUTSCH
Regulärer Ausdruck: ^(.+) - (.+)$
Treffer ersetzen durch: $2

[ ] Groß-/Kleinschreibung berücksichtigen

Aktion #6:
Aktionstyp: Ersetzen mit regulären Ausdrücken
Feld: BIRDER4106_ARTIST_LATEIN
Regulärer Ausdruck: ^(.+) - (.+)$
Treffer ersetzen durch: $1

[ ] Groß-/Kleinschreibung berücksichtigen

Aktion #7:
Aktionstyp: Tag-Felder formatieren
Feld: BIRDER4106_FILENAME
Formatstring: %BIRDER4106_ARTIST_DEUTSCH% - %BIRDER4106_ARTIST_LATEIN%$if(%BIRDER4106_ALBUM%, - %BIRDER4106_ALBUM%,)

Testeingabe:
BIRDER4106_TITLE          = 'Parus montanus montanusMönchsmeise (Weidenmeise, alpine Form)'
BIRDER4106_ALBUM          = ''
Testergebnis:
BIRDER4106_TITLE_NEU      = 'Parus montanus montanus - Mönchsmeise (Weidenmeise, alpine Form)'
BIRDER4106_ARTIST_DEUTSCH = 'Mönchsmeise (Weidenmeise, alpine Form)'
BIRDER4106_ARTIST_LATEIN  = 'Parus montanus montanus'
BIRDER4106_FILENAME       = 'Mönchsmeise (Weidenmeise, alpine Form) - Parus montanus montanus'

Testeingabe:
BIRDER4106_TITLE          = 'Anser fabalisSaatgans'
BIRDER4106_ALBUM          = 'Gesang!, Ruf, Juv., Balz, Paar, Instr.-Laut'
Testergebnis:
BIRDER4106_TITLE_NEU      = 'Anser fabalis - Saatgans'
BIRDER4106_ARTIST_DEUTSCH = 'Saatgans'
BIRDER4106_ARTIST_LATEIN  = 'Anser fabalis'
BIRDER4106_FILENAME       = 'Saatgans - Anser fabalis - Gesang!, Ruf, Juv., Balz, Paar, Instr.-Laut'

Test_birder4106.mta (551 Bytes)

DD.20070301.1119

Test_birder4106.mta (551 Bytes)


#3

Lieber DetlevD

Vielen Dank für deine ausführliche Antwort.

Ich wollte dir mit diesem Mail danken, obwohl ich deine Lösungsvorschläge erst überflogen habe. Ich habe auch keine Zweifel, dass es gemäss deinen Angaben funktionieren wird.

Ich mache mich nun an die Arbeit.
Und hoffe, dich erst nach dem Lösen aller Probleme wieder zu kontaktieren.

MfG
Martin