Syntax Probleme bei Tag - Tag

#1

Hallo

Erst mal ein Lob für die Entwickler von MP3Tag.

Zu Info.: bei mir läuft MP3tag auf einem PC mit Win 7 (ich weiß nicht ob das eine Rolle spielt)

Dann vorab schon mal was ich geschafft habe und später dann das, wo ich bis jetzt gescheitert bin.
Geschafft hab ich:
Im Dateinamen steht der Titel und der Interpret

  1. nur der Titel soll jetzt in den Tag „Titel“ übertragen werden
    Lös. Mit Konverter Dateiname – Tag und Eingabe im Feld Formatstring %title% -%dummy%
  2. nur der Interpret soll jetzt in den Tag „Interpret“ übertragen werden
    Lös. Mit Konverter Dateiname – Tag und Eingabe im Feld Formatstring %dummy% - %artist%

Im Tag „Titel“ steht der Titel und der Interpret
3) Lös. Mit Konverter Tag – Dateiname und Eingabe im Feld Formatstring %title%

Okey soweit

Ich habe jetzt schon etliche Std damit verbracht die Hilfeseiten zu studieren und die ganzen Möglichkeiten die dort aufgezeigt zu verstehen werden sowie bei der MP3tag community die geschilderten Beispiele zu lesen. Leider bin ich bisher nicht dahinter gekommen auf welche Art ich es schaffe eine Lösung für folgende Fragestellungen zu finden

Welchen Konverter oder welche Aktion muss ich nehmen – ( möglichst direkt auf einen Schlag)

wenn im Tag Titel “der Interpret & der Titel“ steht Beisp. “Max – Meine Liebe“
A) nur den Titel in dem Dateinamen zu übertragen Meine Liebe
B) nur den Interpret in den Tag Interpret zu übertragen Max
C) im Tag Titel den Interpreten und Meine Liebe

Mit dem was ich bei Lösungen zu geposteten Fällen gefunden habe, hat es bei mir bisher nicht geklappt. Ich weiß nicht was ich falsch mache oder wo ich falsch denke.
Ich kenne mich nicht gut aus mit syntax eingeben!
Deshalb bitte ich wenn jemand eine Lösung hat diese in eine Weise zu erklären das auch ein Laie sie verstehen sollte und nicht nur programmier-Profis.

Ich wäre wirklich dankbar wenn mir jemand helfen könnte was ich wo und in welcher Form für A) B) und C) eingeben muss, um das zu erhalten was ich möchte.

Jetzt schon mal Danke für alle Antworten
RoLo

0 Likes

#2

Das könntest du in einem Gang durchführen mit
Konverter>Dateiname - Tag
Format-String: %title% - %artist%

Konverter>Tag-Dateiname
FormatString: $regexp(%title%,.* - (.*),$1)

Konverter>Tag-Tag für ARTIST
Format-String: $regexp(%title%,(.*) - .*,$1)

Konverter>Tag-Tag für TITLE
Format-String: %artist% - %title%

1 Like

#3

Danke für deine Antwort
Die Lösung für A) und B) funktionieren prima!! Super!
für C) funktionier nicht wie angefragt siehe unten.

Ich hab aber trotzdem noch eine Bitte, da ich das, was du mir als Lösung gibst auch verstehe,
also für zukünftige Fragen weiß wie dies oder das funktioniert und wie ich es verwenden kann
bitte ich dich mir ein paar Erklärungen zu geben wenn ich dich damit nicht über die Maßen beanspruche

Zu A) Frage zur Lösung
.* bedeutet jedes Zeichen Beliebig oft ….. sind da auch Leerzeichen eingeschlossen?
in deiner Syntax folgt nun ein Blank, Bindestrich, Bank also die Blanks sind erforderlich?
(.*) <= warum hier jetzt in runden Klammern?

.* - (.*) <= innerhalb von Kommas
ohne Klammern beinhaltet das eigentlich nicht alles? = Max – Meine Liebe
und mit den Klammern bekommt der hintere Teil (Titel) eine spez. Bedeutung welche?
$1 <=. Was bedeutet der Begriff übersetzt?

Wie würde sich die Syntax ändern wenn im Feld Titel “Titel – Interpret“ also Meine Liebe – Max

Zu B) Frage zur Lösung
hier ist der einzige Unterschied zu oben
(.) - . <= innerhalb von Kommas
und mit den Klammern bekommt der vordere Teil (Titel) eine spez. Bedeutung welche?

Zu C) Frage zur Lösung
mit deiner Syntax wird Interpret und Titel (beides) nach Interpret übertragen plus ein Bindestrich
gewünscht war nur der Interpret

Nachdem was ich oben von dir gelernt habe, habe ich folgendes ausprobiert
Konverter>Tag-Tag für Artist
Format-String: $regexp(%title%,(.) - .,$1) ___ Das hat überraschender Weise funktioniert.

He, Ohrenkino, danke, das hat geholfen, du bist halt ein Profi.

Hilfst du mir noch mit den Erklärungen oben. Vielliechtbin ich jetzt auf den Gescmack gekommen!

Danke Vielmals
RoLo

0 Likes

#4

Ohh da ist was Passiert was ich nicht wollte , ein Teil meines textes ist auf einmal in viel größeren Buchstaben und Fett geschrieben , da wollte ich nicht. Hab versucht das durch nachträgliches Editieren zu korrigieren hab das aber nicht hinbekommen.
Also Sorry
Gruß RoLo

0 Likes

#5

Wenn du Programmtext oder so hast, was ggf. der Formatierer hier im Forum als Format-Anweisung verstehen kann, dann schließe diesen Text in Accent-Grave ein (Links-oben nach rechts-unten).

1 Like

#6

Die Anweisung $regexp() ist ein sog. regulärer Ausdruck, dasselbe was man in einer Aktion vom Typ "Ersetzen mit regulärem Ausdruck" anwenden kann.
(siehe dazu auch die Hilfe: http://hilfe.mp3tag.de/options_format.html#regexp)

Das .* heißt wirklich "nimm alles" - da aber im Ausdruck ein Muster festgelegt wird mit "Blank-Minus-Blank", heißt es hier: Nimm alles vor "Blank-Minus-Blank" und dann alles dahinter. Da ich "alles dahinter" in Klammern setze, heißt das "und merk es dir".
Dieses "und merk es dir" rufe ich mit $1 wieder auf. Damit wird das erste "und merk es dir" adressiert. Wenn man mehrere Teile hätte, also z.B. Vornamen und Nachnamen tauschen wollte, dann könnte das so aussehen:
$regexp('Roy Black',(.*) (.*),'$2, $1')
Du kannst das ja mal probehalber bei Konverter>Tag-Tag als Formatstring eingeben, es müsste dann "Black, Roy" dabei rauskommen in der Vorschau.

2 Likes

#7

Hallo Ohrenkino
Ich habe da jetzt noch eine ergänzende Frage und zwar ausgehend davon, daß bei mehreren Alben mit jeweils x Songs die Feldern beim Interpreten leer sind im Dateinamen aber der Titel als auch der Interpret vorhanden sind ABER in unterschiedlicher Weise durch ein Trennzeichen getrennt z. B. mal mit BlankBindestrichBlank, mal BlankSchrägstrichBlank, mal nur durch Schrägstrich usw. siehe
Beisp.

  1. Titel – Interpret
  2. Titel / Interpret
  3. Titel/Interpret
  4. Titel,Interpret

Für den Fall, daß man jetzt den Interpret aus dem Dateinamen in das Feld Interpret übertragen möchte habe ich bereits eine Lösung für diesen Fall aber eben nur wenn die Trennung zwischen Titel und Interpret im Dateinamen ein BlankBindestrichBlank ist.
Jetzt ist meine Frage die: muss ich für jeden der anderen Fälle wo die Trennung eine andere ist als BlankBindestrichBlank eine spezielle eigene Syntax eingeben oder kann man mit einer geschickten Syntax alle Fälle abhandeln. (quasi eine universelle Syntax für diese Fälle)
Ich habe da rumgestöbert und gelesen das es da auch eine „or“ Verknüpfung gibt, kommt die da eventuell zum Einsatz oder wie kann man das eventuell lösen?

Ich hab auch schon gelernt. daß man sich (diese) Operationen (z. B. Interpret aus Dateiname nach Feld Interpret) in Form von Aktionen speichern kann.

Hierzu gleich noch eine Frage.
Wenn ich mir also eine Operation in Form von Aktionen speichern möchte und ich dazu im Menu auf Aktionen klicke und dann auf Aktion klicke öffnet sich ein Fenster mit der Überschrift Aktionsgruppen.
Ich denke vielleicht an der Stelle auch zu kompliziert aber was bedeutet hier diese Überschrift? Speziell meine ich den Begriff „Gruppen“? hier sind nach meinem Verständnis doch eigentlich nur jeweils einzelne Aktionen gespeichert die man nutzen kann. Oder?
Unter Gruppen hätte ich jetzt z. B. so etwas verstanden wie einen Oberpunkt den man anklicken kann u. dann öffnet sich ein weiteres Fenster wo man dann aus vielen eine spezielle Aktion zu diesem Oberbegriff auswählen / ausführen kann.
z. B. Oberpunkt = Teil aus Dateinamen nach Tag
Unterauswahl im neuen Fenster Interpret aus Dateinamen nach Tack Interpret
Titel …. aus Dateinamen nach Tack Titel
TrackNr. aus Dateinamen nach Tack TrackNr ……usw.

Ich würde mich wieder freuen über eine Antwort
Gruß RoLo

0 Likes

#8

Nein - man kann in einer Aktionsgruppe jede Menge einzelne Aktionen unterbringen.
Also könntest du z.B. für den Import der Daten aus

eine Gruppe anlegen, in der dann für jedes Muster eine AKtion vorhanden ist - zum Importieren der Daten musst du dann nur die Aktionsgruppe 1x aufrufen und ggf. werden alle Muster abgearbeitet.
Was mich zu den einzelnen Fällen bringt.
Ich würde eine Aktionsgruppe anlegen, für jedes mögliche Trennzeichen eine, jeweils vom Typ "Tag-Feld importieren"
Für die Quelle jeweils %_filename%
Als Ziel dann:
%Title% – %artist%
%Title% / %artist%
%Title%/%artist%
%Title%,%artist%
Ich würde auch hier nicht zu viel automatisieren, da mindestens beim Komma die Gefahr besteht, dass nicht das richtige importiert wird.
Und: ich würde das nicht mit regulären Ausdrücken machen, sondern mit "Tag-Feld importieren".

Dieser Weg erscheint mir umständlich, da man mit dem Konverter und Angabe der Trennzeichen auch gleich mehrere Felder aus dem Dateinamen extrahieren kann. Und das Muster zu bestimmen geht vermutlich schneller im Konverter festzulegen als dafür jedes Mal eine eigene Aktion zu bauen.

1 Like

#9

Hallo Ohrenkino
Danke für deine Antworten.
Ja schade das sich die unterschiedlichen Formen der dateinamen nicht mittels einer universellen Syntax bearbeiten lassen.
Dann werd ich so vorgehen wie du es vorgeschlagen hast.
Danke noch mal
RoLo

0 Likes

#10

Ich würde da an Titel denken wie
Pump up the volumen - Colourbox M/A/R/R/S
Wie soll da der Trenner automatisiert werden?

Chenko (Tenka-io) - Red box hat einen Bindestrich im Text ... kann man nur hoffen, dass wirklich immer Leerzeichen drumrum sind

Caught, Can We Get A Witness? - Public Enemy
hat Komma und Bindestrich - da wird nichts gutes dabei rauskommen.
Oder kurz: es gibt keine universelle Syntax, Sprache ist zu variantenreich.
Deshalb würde ich beim Neuanlegen von Dateinamen darauf achten, ein Trennzeichen zu nehmen, was in der normalen Sprache fast nie vorkommt. Ich finde, der Unterstrich _ ist eine gute Näherung.

0 Likes