Dynamische Dateibezeichnung bei Exportdateien


#1

Alle meine CD's haben eine RFID-Karte bekommen. Im ID3-Tag habe ich ein benutzerdefiniertes Tag RFID eingeführt. Das Feld im ID-3 Tag heißt: RFID_CARD. Diese RFID-/Tagnummer soll Grundlage für die Playlisten meiner CD's sein. Die Playlisten werden wegen eines bestimmten Formates über Export erzeugt. Jetzt möchte ich nicht immer die RFID-Nr. als Dateinamen eingeben müssen. Dazu habe im Exportscript die erste Zeile wie folgt definiert:

$filename$replace(%RFID_CARD%.m3u,utf-8)

Im Feld Dateinamen der Exportdatei wird mir aber nur "%RFID_CARD%.m3u" angeboten.

Dabei soll er mir die RFID-Kartennummer aus dem Feld RFID_CARD ausgeben.
Z.B.: 30-77-155-209-25.m3u (30-77-155-209-25 ist der Inhalt von RFID_CARD.)

Hat jemnd einen Tipp für mich?

Gruß
Eberhard


Zwei ähnliche Dialogfelder mit unterschiedlicher Wirkung.
#2

Zuerst siehe nach bei "Mp3tag Manual/Exportkonfiguration" wie die Syntax der Export Skriptsprache richtig geschrieben wird.
Zum Beispiel ...

$filename($getEnv('USERPROFILE')'\Desktop\RFID.Data.txt',UTF-8)

... wäre das die erste Zeile im Export-Skript, die den Ort und Namen der Ausgabedatei definiert.

Die Inhalte von Tag-Feldern kann man dann nacheinander ausgeben in einer Schleife über alle ausgewählten Dateien bzw. über die benannten Tag-Felder. Dafür verwendet man die Funktionen $loop() und $loopend().
Zum Beispiel ...

$loop(%RFID_CARD%)%RFID_CARD% $loopend()

... gibt das den Inhalt des Tag-Feldes RFID_CARD in sortierter Reihenfolge aus.

Vielleicht meinst du aber so etwas ...

1: $filename($getEnv('USERPROFILE')'\Desktop\'%RFID_CARD%'.txt',UTF-8)

2: $loop(%RFID_CARD%)%RFID_CARD%
3: $loopend()

... aber ... obwohl das technisch machbar ist, glaube ich nicht, dass es sinnvoll bzw. fehlerfrei zu gebrauchen ist, weil der tatsächliche Dateiname der Ausgabedatei davon abhängt, auf welcher Datei mit welchem Tag-Feld Inhalt der Cursor stand beim Aufruf des Exportskripts.

DD.20120908.1723.CEST


#3

Ich habe mich zugegebenerweise etwas schwamming (völlig unklar) ausgedrückt.

Genau da liegt das Problem. Leider ist das Manual nicht mit Beispielen hinterlegt. Da ich das THema Export neu anpacke ist es für mich schwer das alles zu verstehen.

Meine erste Zeile wurde jetzt modifiziert nach:

$filename(U:\playlists\\%RFID-CARD%.m3u,utf-8)

Aber leider steht durch die Angabe %RFID-CARD% im Feld Dateiname der Exportdatei nicht die die RFID-Nummer in dem Feld, sondern lediglich %RFID_CARD%.m3u . Also hat er den Befehl nicht auswerten können.

Wo liegt der Fehler?

Gruß Eberhard


#4

In dem Beispiel und deinem Text sind mindestens 2 Schreibweisen für den Variablennamen.
Es wird wohl nur einer richtig sein.
Du muss EXAKT den eintragen, der auch als Name in den Dateien vorkommt.


#5

Den Dateiname %RFID_CARD%.m3u konnte ich nicht nachvollziehen.
Hm, gibt es Schreibfehler beim Platzhalter?
%RFID-CARD% vs. %RFID_CARD%

Wenn Mp3tag im Skript eine Zeichenkette entdeckt, die in Prozentzeichen eingeschlossen ist, dann nimmt Mp3tag an, dass es sich dabei um einen Platzhalter handelt.
Mp3tag ersetzt den Platzhalter mit dem Wert aus dem Tag-Feld, das zu diesem Platzhalter passt.
Wenn das Tag-Feld nicht existiert, dann wird auch nichts ausgegeben.
So kann es passieren, dass zwar eine Ausgabedatei erzeugt wird, aber die hat dann zum Beispiel nur den Namen ".txt".

In dem Eingabefeld "Export/Dateiname der Exportdatei" zeigt Mp3tag das Argument der Funktion $filename() an aus dem Exportskript, ohne dort vielleicht verwendete Platzhalter mit einem aktuellen Wert zu ersetzen.
Wie sollte Mp3tag an dieser Stelle den Wert von Platzhaltern im Voraus wissen?

DD.20120911.0803.CEST


#6

So, jetzt habe ich hier Verwirrung genug gestiftet:

Ok - Der Schreibfehler tauchte zwar hier auf, aber richtig bezeichnet ist die Variable mit %RFID_CARD%. Jetzt zu eurer Hilfe. Ich fange hinten an:
@ foo_peter: mein problem liegt vor und nicht in der loop
@ detlev_D:

Ich erzeuge mit dem Export eine Playlist, die von der Squeezebox gelesen und abgespielt werden können. Die "hauseigenen" PL funktionieren nicht. Da diese PL von einem Arduino mit RFID-Kartenleser aufgerufen werden, heißt die PL wie die Seriennummer der RFID-Karte. OK?

Wenn ich aber eine "hauseigene" PL aufrufe und im Setup Playlist in dem Feld Playlist-Dateiname
"U:\playlists\%RFID_CARD%.m3u"
eingetragen habe schlägt mir Mp3tag als Name die RFID-Nummer der CD vor. Warum das nicht bei Export? Das ist genau der Knackpunkt! Warum geht es bei den PL und nicht beim Export?

Gruß
Eberhard


#7

Das ist eine berechtigte Frage.
Prinzipiell erfüllen die beiden Dialogfelder denselben Zweck ...
(Setup/Playlist) "Dialog zur Überprüfung des Dateinamen"
... und ....
(Export) "Dateiname der Exportdatei".

Nur bei "Dateiname der Exportdatei" fehlt die automatische Aktualisierung des angezeigen Wertes.
Du kannst ja eine Fehlermeldung machen.
Das müsste eigentlich schnell repariert werden können.

DD.20120911.1434.CEST


#8

Hallo DelevD,

ich bin offensichtlich zu blöd gleich beim ersten Mal richtig zu formulieren. Du hast es kurz und kanckig so dargestellt, dass ich sogar begriffen habe, was ich wollte... :w00t:

Werd' ich gleich heute machen. Danke!
Eberhard