Tracknummern in Aktionen

Hallo,

meine Hauptanwendung für MP3Tag ist das Taggen von Hörbüchern.

Die sind in Verzeichnissen mit ihrem Romantitel abgelegt:
Roman Eins

  Roman Eins %TRACK%
  Roman Eins %TRACK%
  .
  .
  .

Roman Zwei

  Roman Zwei %TRACK%
  .
  .

Wie kann ich in den Aktionengruppen das Nummerieren der Tracks mit Neubeginn nach Verzeichniswechsel erreichen?
Einige der anderen Tags sind von %TRACK% abhängig. Diese weiteren Track bearbeite ich bereits in einer Aktionengruppe (AG).
Bislang nummeriere ich mit dem Assistenten und starte dann die AG.

Danke für eure Hilfe

Helmut

und das ist auch die einzige Möglichkeit.

Wenn Du das Nummerieren innerhalb einer Aktionsgruppe nachbilden willst, musst Du Verzeichnis nach Verzeichnis manuell abarbeiten.

Fertig eingebaut gibt es das in Mp3tag noch nicht, aber man kann es sich einrichten.
Zuerst werden von den selektierten Mediendateien die Pfadnamen, zusammen mit einem mitlaufenden Zähler, in eine Textdatei exportiert, wobei der Zähler bei jedem Ordnerwechsel neu startet.
Danach wird die Textdatei importiert in ein temporäres Hilfs-Tag-Feld in jede Mediendatei.
Dann wird das Hilfs-Tag-Feld mit einem regulären Ausdruck ausgewertet und der gefundene Zählerwert in das Tag-Feld TRACK geschrieben.
Dann wird das temporäre Hilfs-Tag-Feld entfernt.
Auf das temporäre Hilfs-Tag-Feld kann man auch verzichten, wenn man die Auswertung direkt auf dem Tag-Feld TRACK durchführt.

  1. Exportdatei anlegen.
Name: Export.TXT.20150106.TrackCountPerFolder 1: $filename($getEnv('TEMP')'\TrackCountPerFolder.txt',UTF-8)

2: $loop(%_folderpath%)$loop(%_filename_ext%)%_path%'|'%_counter%'|'
3: $loopend()$loopend()

  1. Aktionengruppe anlegen.
Anfang Aktionengruppe Format TRACK#Set TRACK count per folder.step1

Aktion #1
Aktionstyp 15: Export
Skriptdateiname auswählen: Export.TXT.20150106.TrackCountPerFolder
Exportdateiname _________: $getEnv('TEMP')'\TrackCountPerFolder.txt'

[_] Daten anhängen [_] Eine Datei pro Verzeichnis

Ende Aktionengruppe Format TRACK#Set TRACK count per folder.step1 (1 Aktion)

  1. Aktionengruppe anlegen.
Anfang Aktionengruppe Format TRACK#Set TRACK count per folder.step2

Aktion #1
Aktionstyp 14: Textdatei importieren
Feld ____: TRACK
Dateiname: $getEnv('TEMP')'\TrackCountPerFolder.txt'

Aktion #2
Aktionstyp 5: Tagfeld formatieren
Feld _______: TRACK
Formatstring: $regexp(%TRACK%,'^.'$regexp(%_path%,'[].|?+(){}^$′″[\\-'']','\\$0')'|(\d+)|[\r\n]+.*$','$1')

Ende Aktionengruppe Format TRACK#Set TRACK count per folder.step2 (2 Aktionen)

  1. Ausführen.
    Dateien selektieren.
    Aufrufen der Aktion im Menü "Aktionen", "Format TRACK#Set TRACK count per folder.step1"
    Aufrufen der Aktion im Menü "Aktionen", "Format TRACK#Set TRACK count per folder.step2"
    Fertig.

Anmerkungen:
Bei meinem alten XP-PC wäre es von Vorteil, wenn man zwischen dem Anlegen der Exportdatei und dem anschließenden Einlesen der Datei eine gewisse Wartezeit einbauen könnte.
Ebenso wäre eine gewisse Wartezeit nach dem Einlesen der Textdatei erwünscht.
Mp3tag scheint schneller zu arbeiten, als die Daten im Speicher sein können ...
sodass es hin und wieder zu fehlerhafter Berechnung kommt, ...
so muss man die Aktion wiederholen, was dann beim zweiten Mal funktioniert.
DD.20150106.2210.CET

Oh, jetzt weiß ich woher diese Fehlersituation kommt ... Mp3tag macht den Export tatsächlich
erst am Ende der Aktionengruppe, ...
und somit ist es klar, warum es zur fehlerhaften Ausführung kommt beim ersten Aufruf.
Na ja, wenn man es weiß, ... dann kann man damit umgehen, aber schön ist es nicht.
DD.20150106.2359.CET

Ich habe meinen ersten Vorschlag geändert und die zuvor eine Aktionengruppe in zwei Schritte aufgeteilt. Nun funktioniert es richtig.
Wenn es doch nicht funktioneren sollte, dann kann es daran liegen, dass im Dateipfadnamen Sonderzeichen enthalten sind, die in dem regulären Ausdruck nicht mit aufgeführt sind und deshalb nicht eskapiert werden, diese Sonderzeichen muss man dann im regulären Ausdruck ergänzen.

DD.20150107.1230.CET