Leeres Tagfeld löschen


#1

Hallo,

ich hatte merkwürdige Phänomene bei der Konvertierung "Tag - Dateiname", wenn ich eine bedingte Konvertierung in Abhängigkeit von der Existenz eines bestimmten Tagfeldes vornahm. (Erzeugung einer Ordnerstruktur)

Obwohl das bestimmte Tagfeld anscheinend leer war, klappte die Konvertierung nicht wie gewünscht.
Ich habe dann das Feld entfernt und danach klappte es.

Nun vermute ich, dass - von mir unbemerkt - das Feld nicht wirklich leer war, sondern ausschließlich ein oder mehrere Leerzeichen enthielt.
Dabei taucht bei mir auch die Frage auf, ob es einen Unterschied zwischen einem überhaupt nicht vorhandenen Tagfeld und einem leeren Tagfeld gibt, das eventuell auch für ein solches Phänomen verantwortlich sein könnte?

Wie dem auch sei.
Ich würde gerne alle Tagfelder soweit wie möglich automatisch entfernen, wenn sie leer sind bzw. ausschließlich Leerzeichen enthalten.

Hat jemand einen Vorschlag?


#2

So wie ich Mp3tag bisher kenne, wird ein bei der Bearbeitung leer gewordenes Tagfeld automatisch aus der Liste der Tagfelder gelöscht.
Praktisch bedeutet es, dass ein leeres Tagfeld nicht existieren kann.

Wenn ein Tagfeld in der Liste der Tagfelder angezeigt wird (siehe Dialog "Erweiterte Tags..."), dann ist es nicht leer, sondern enthält irgendwelche Zeichen, u. a. zum Beispiel Leerzeichen oder andere nicht darstellbare Steuerzeichen.

Hmm, wie kann man alle die Tagfelder automatisch bearbeiten, die visuell leer erscheinen, aber doch etwas enthalten?
Auf einen Schlag wird das wohl nicht machbar sein.
Vermutlich muss man einzeln vorgehen je Tagfeld.

Vielleicht geht es auch so:
Man exportiert die Tagfelder in eine Textdatei und bearbeitet den Text mit einem Texteditor durch Suchen und Ersetzen, so dass die speziellen Leerwerte entfernt werden.
Beim Import mit dem Konverter "Textdatei-Tag" wird Mp3tag dann automatisch leer werdende Tagfelder entfernen.

Die Existenz eines Tagfeldes kann man feststellen mit:
$if(%TITLE%,'Tagfield TITLE exist.','Tagfield TITLE does not exist.')

Die Länge kann man messen mit:
$len(%TITLE%)

Man kann auf Leerzeichen untersuchen mit:
$if($eql($trim(%TITLE%),),'Tagfield TITLE contains only spaces.','Tagfield TITLE has letters.')

Man kann den Mp3tag Filter benutzen, zum Beispiel mit dem Ausdruck:
NOT TITLE IS ""
Wenn damit ein Track angezeigt wird, der ein scheinbar leeres Tagfeld TITLE hat, dann ist dieses Tagfeld wirklich nicht leer.

Man kann mit der Aktion "Tagfeld formatieren" und mit dem Formatstring ...
$if($eql($regexp(%TITLE%,'\s',),),,%TITLE%)
... ein Tagfeld entfernen, wenn es nur "whitespace" Zeichen enthält.

Man kann mit der Aktion "Ersetzen mit Regulärem Ausdruck" und mit dem Pseudo-Tagfeld _TAG experimentieren. Vielleicht kann man mit dem richtigen regulären Ausdruck genau nur die scheinbar leeren Tagfelder entfernen.

Man kann eine Exportdatei erzeugen, die alle Felder anzeigt.
So kann man visuell erkennen, ob Tagfelder exisitieren, die eigentlich nicht existieren sollen.
20110607.Export.tag.dump.mte (556 Bytes)

DD.20110729.1456.CEST

20110607.Export.tag.dump.mte (556 Bytes)


#3

Das ist wohl richtig und ich habe es hier empirisch nachvollziehen können.

Vielen Dank für die konstruktiven Vorschläge.

Ich habe mich entschlossen, das Problem manuell anzugehen, was letztlich gar nicht so viel Arbeit war.

  1. Nach Tagfeld sortieren.
  2. Die in der Liste leer erscheinenden Felder markieren
  3. Mit Alt-t die vorhandenen TAG-Felder anzeigen
  4. Unerwünschtes (leeres) Tag-Feld entfernen