aus 1_2 wird 1 (2) -geht das auch in %title% -feldern?


#1

guten tag

ich möchte mit mp3tag %title% felder direkt editieren und zwar wie folgt

die Konverter-Funktion des von mp3tag erlaubt es ja aus Dateinamen wie
Aaron_Special Berlin Calling Edit -----------> Aaron (Special Berlin Calling Edit)
zu machen indem man im ersten feld die vorhandene maske eingibt, im zweiten die gewünschte abweichung:

da ich eine ersetzen-aktion schaffe nicht schaffe, gehe immer den umweg über Dateiname - Tag-funktion für das editieren der %title% felder. ich bin schon sehr dankbar für diese kombinationsmöglichkeit. dennoch, eine elegante lösung ist es ja nicht gerade..

eine Konverter-funktion %title% - %title% (und andere tagfelder) scheint nicht vorhanden zu sein. weiß vielleicht jemand einen ebenso einfachen weg?

mgf
s_PLASH

PS

es wäre schön, wenn in der nächsten version von mp3tag die Konverter-funktion um ein weiteres Eingabefeld (als auswahlmöglichkeit der zu konvertierenden felder) ergänzt werden würde. dieser Konverter könnte dann "Tagfeld - Tagfeld" heißen. ODER man würde die Ersetzen-Aktion mit der Funktionsweise des Konverters Dateiname - Dateiname bereichern. vll hieße die Ersetzen-Aktion dann "Ersetzen mit Maske" und würde so aussehen


Dateiname ändern
mp3tag mit Konverter "Tagfeld - Tagfeld" bereichern
#2

Doch: mehrere Aktionstypen kreisen darum.
Aktionen vom Typ "Ersetzen" nehmen etwas bestehendes und ersetzen es durch etwas anderes
Aktionen vom Typ "Tag-Feld formatieren" ändern das Format eines Felds.
(zugegeben, es gibt Überschneidungen, speziell beim EInsatz der Aktion "Ersetzen mit regulärem Ausdruck ... aber das ist was für Puristen)

Dein Vorgehen mit der Ergänzung der Klammer zu einem bestehenden Inhalt ist eine "Format"-Aktion.
Du müsstest eine (neue) Aktion anlegen vom Typ "Tag-Feld formatieren", das Feld TITLE auswählen und als Format-String einfügen:
(%title%)
Die Klammern sind dabei Format-Elemente, das %title% der Name einer Variablen, aber das kennst Du ja von Tag-Dateiname.

Also: die Funktionen sind schon da, heißen nur eben Aktionen und sind wirklich extrem flexibel.


#3

Auch ich vermisse manchmal so einen simplen Konverter "Tagfeld - Tagfeld", weil damit die passenden einfachen Fälle einfach und schnell auf Anfängerniveau bearbeitet werden könnten.

Aber weil dem (noch) nicht so ist, muss man auf das vorhandene Angebot der Aktionen zurückgreifen.

Für deinen Beispielfall kann man verschiedene Wege gehen.
Die folgenden Beispiele funktionieren so:
Vorher: Alpha_Beta
Nachher: Alpha (Beta)

Anfang Aktionengruppe Test#20100816.s_PLASH.Title (1)
Aktionstyp 2: Ersetzen
Feld: TITLE
Original: _
Ersetzen durch: ÷(

[_] Nur als Wort ersetzen [_] Groß-/Kleinschreibung berücksichtigen

Aktion #2
Aktionstyp 5: Tagfeld formatieren
Feld: TITLE
Formatstring: %TITLE%)
Hinweis: Ersetze jedes ÷ Sonderzeichen durch ein Leerzeichen.
Ende Aktionengruppe Test#20100816.s_PLASH.Title (1) (2 Aktionen)

Der Nachteil der Lösung (1) liegt darin, dass nach zweimaliger Anwendung der Aktionengruppe auf demselben Tagfeld die schließende Klammer zweimal vorhanden ist.

Anfang Aktionengruppe Test#20100816.s_PLASH.Title (2)
Aktion #1
Aktionstyp 7: Tagfelder importieren
Quellformat: $ifgreater($strchr(%TITLE%,''),0,$replace(%TITLE%,'','÷(')')',%TITLE%)
Formatstring: %TITLE%
Hinweis: Ersetze jedes ÷ Sonderzeichen durch ein Leerzeichen.
Ende Aktionengruppe Test#20100816.s_PLASH.Title (2) (1 Aktion)

Das Ergebnis bei Lösung (2) ändert sich nicht bei zweimaliger Anwendung, aber der verwendete Aktionstyp wird hier irgendwie befremdlich innovativ angewendet.

Anfang Aktionengruppe Test#20100816.s_PLASH.Title (3)
Aktion #1
Aktionstyp 5: Tagfeld formatieren
Feld: TITLE
Formatstring: $ifgreater($strchr(%TITLE%,''),0,$replace(%TITLE%,'','÷(')')',%TITLE%)
Hinweis: Ersetze jedes ÷ Sonderzeichen durch ein Leerzeichen.
Ende Aktionengruppe Test#20100816.s_PLASH.Title (3) (1 Aktion)

Das Ergebnis bei Lösung (3) ändert sich nicht bei zweimaliger Anwendung und der verwendete Aktionstyp passt sinngemäß.

Anfang Aktionengruppe Test#20100816.s_PLASH.Title (4)
Aktion #1
Aktionstyp 4: Ersetzen mit regulärem Ausdruck
Feld: TITLE
Regulärer Ausdruck: ^(.+?)_(.+?)$
Treffer ersetzen durch: $1÷($2)

[_] Groß-/Kleinschreibung berücksichtigen

Hinweis: Ersetze jedes ÷ Sonderzeichen durch ein Leerzeichen.
Ende Aktionengruppe Test#20100816.s_PLASH.Title (4) (1 Aktion)

Diese Lösung (4) würde ich persönlich vorziehen, weil sie der eigentlichen Aufgabenstellung
sinngemäß am Nächsten liegt.

Außerdem gibt es auch einen Bearbeitungsprozess, der mit Hilfe der Konverter Funktionen zum
gewünschten Ergebnis führt.

Im Beispiel hat die Datei den Namen "Dateiname.mp3" und das Tagfeld TITLE den Inhalt "Alpha_Beta".

Konverter | Dateiname - Tag | ALT+2
Formatstring auswählen
Formatstring: Dateiname.mp3
%BACKUP_FN%
Vorschau
BACKUP_FN | Dateiname

Konverter | Tag - Dateiname | ALT+1
Formatstring auswählen
Formatstring:
%TITLE%
Vorschau
Alpha_Beta.mp3

Konverter | Dateiname - Dateiname | ALT+3
Formatstring auswählen
Maske über alten Dateinamen:
%1_%2
Maske über neuen Dateinamen:
%1 (%2)
Vorschau
Alpha (Beta).mp3

Konverter | Dateiname - Tag | ALT+2
Formatstring auswählen
Formatstring: Alpha (Beta).mp3
%TITLE%
Vorschau
TITLE | Alpha (Beta)

Konverter | Tag - Dateiname | ALT+1
Formatstring auswählen
Formatstring:
%BACKUP_FN%
Vorschau
Dateiname.mp3

Am Ende muss das temporäre Tagfeld "BACKUP_FN" noch entfernt werden, z. B. mit der Aktion "Tagfelder entfernen".

DD.20100816.1255.CEST


#4

starke Leistung :w00t:

nur würde ich gern noch im einzelnen verstehen warum (.+?)

ich werde aus den englischen hilfe-seiten zur bedeutung der ausdrücke einfach nicht schlau, wäre es aber gern :laughing: weil das ersetzen mit regulärem ausdruck auch aus meiner sicht hier die beste (derzeit zu verfügung stehende) aber auch oftmals die einzige lösung ist.

(.+?) - die klammern schließen den ausdruck ab, oder? und was machen die 3 zeichen darin?

mfg
s_PLASH


#5

Auf die Schnelle:
Der Punkt "." ist ein Platzhalter für ein beliebiges Zeichen.
Das Pluszeichen "+" ist ein Quantor, der bestimmt, dass der vorstehende Ausdruck mindestens einmal vorkommen muss, aber auch mehrfach vorkommen darf.
Das Fragezeichen ist ein Quantor, der bestimmt, dass der vorstehende Ausdruck optional ist, er kann einmal vorkommen, muss es aber nicht.

Quantoren sind standardmäßig „gierig“, das bedeutet, es werden so viele Zeichen aufgegriffen wie es der Ausdruck nur irgendwie möglich macht. Das ist nicht immer gewünscht. Deshalb kann man Quantoren modifizieren, so dass sie "nicht gierig" sind. Das Fragezeichen rechts neben dem Pluszeichen schränkt die Gier des Pluszeichens ein.

Teile des Ausdrucks lassen sich mit runden Klammern in Gruppen zusammenfassen. Auf den Wert einer Gruppe kann man mit einem Verweis zurückgreifen. Den Wert der ersten Gruppe erhält man mit dem Verweis $1, den der zweiten Gruppe mit $2.

Siehe dort, da gibt es viel Erklärung.
http://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck

DD.20100819.2024.CEST