Wieder mal RegEx ....


#1

Hallo MP3TAG-Team,

puh !!!!
Also, ich möchte gerne aus dem Tag einer MP3 den Dateinamen "bauen".

Wenn zB. der tag so aussieht:

Track: 01
Interpret: Madonna
Titel: SHANTI/ASHTANGI
Album: Ray of light

oder

Track: 01
Interpret: Spliff
Titel: Wohin Wohin ?
Album: Herzlichen Glückwunsch

Der Dateiname sieht folgendermassen aus:
01~Madonna~SHANTI/ASHTANGI~Ray of lightdann

Jetzt "sagt" ja MP3Tag das der Dateiname ein nicht zulässiges Zeichen "/ oder ?" enthält. Ist ja auch korrekt !
Wie kann ich jetzt ALLE unzulässigen Zeichen aus dem Dateinamen mittels regulären Ausdrücken entfernen.

Gruß
Jörg


#2

Also RegEx passt hier nicht.

Du kannst beim Erstellen des Dateinamens einfach die Funktion
$validate(%artist% - %album% - %track% - %title%,_)
benutzen, die die ungültigen Zeichen durch den zweiten Parameter ersetzt (hier jetzt _)

Die aktuelle Mp3tag-Version lässt die ungültigen Zeichen automatisch weg.


#3

Hmm, ich gehöre zwar nicht zum MP3TAG-Team, aber äußere mich trotzdem 'mal zu deiner Anfrage.

Irgendwie ist nicht ganz klar, wie du aus den Tags den Dateinamen erzeugst, deshalb nehme ich an, dass du dafür die Aktion Tag - Dateiname einsetzt.
Wenn dem so ist, dann kann deine Anfrage nach dem Stand von Mp3tag 2.36d wie folgend beantwortet werden. Zunächst ein Schaubild:



Für das Dateisystem verbotene Sonderzeichen werden zwar sowohl im Dialogfenster als auch im Vorschautext angezeigt, aber der tatsächlich auf die Festplatte geschriebene Dateiname enthält diese Sonderzeichen nicht. Es sieht also so aus, als wenn eine Sonderbehandlung mittels RexExp oder so nicht erforderlich ist.
Überzählige Leerzeichen am Ende eines Feldes werden allerdings nicht automatisch entfernt.

So bleibt am Ende doch nur der Umweg über ein temporäres Hiflsfeld, in dem man die Aufbereitung des Dateinamens zunächst vorbereitet, um danach den Dateinamen aus dem Inhalt des Hilfsfeldes mittels Aktion Tag - Dateiname zu erzeugen, oder, vielleicht etwas eleganter, den Dateinamen mittels Aktion Tag-Felder formatieren (Feld: _FILENAME) zu erzeugen. In beiden Fällen kann man sich der vorhandenen Möglichkeiten von Mp3tag bedienen, um die unerwünschten Sonderzeichen herauszufiltern.

Oder du machst es ganz einfach so, wie dano zuvor beschrieben hat.
Wieder mal RegEx ....

DD.20060811.2030
DD.20060811.2036 Edit



Dateinamenformat