Export nach CSV oder TXT


#1

Hallo!

Vorwort
Ein wenig flau ist mir, weil ich das Gefühl habe, meine Frage wurde in Variation schon
gefühlte 1.000 mal hier gestellt; aber liebe Helfenden, ich habe die SuFu wirklich
bemüht und komme nicht weiter.

Ich benötige Hilfe bzw. einen Ansatz um folgendes zu erreichen:

Aus
C:\Musik\Rock, Blues\%Albumartist%\%Year%.%Album%...

Möchte ich:

  • für jedes Album, wo in %comment% der Eintrag "CD-Album" steht

diese Zeile in einer TXT stehen haben (zwecks Weiterverarbeitung in Excel):

4 Buchstaben von links aus gesehen von %Albumartist% dann Trennung "z.B. #"und dann
%year%

Also aus:

"C:\Musik\Rock, Blues\AC-DC\1975.High Voltage" wird dann:

ACDC#1975

(! ==> 4 BUCHstaben von links aus!)

Und aus:
"C:\Musik\Rock, Blues\Rolling Stones, The\1971.Sticky Fingers" soll werden:

ROLL#1971

Aber nur dann, wenn das jeweilige Album mit "CD-Album" im Feld %comment% getaggt ist.
Falls nicht, passiert nichts und der nächste Eintrag wird ausgelesen.

In welche Richtung muß ich denken?

Gruß
McTag


#2

Na, in die Richtung der Lösung selbstverständlich, also wie du die hier im Forum gesammelten Erfahrungen und Beispiele so kombinieren kannst, dass sie das gewünsche Ergebnis bringen.
Wie du schon festgestellt hast, es ist alles schon gesagt worden - aber wo steht es geschrieben?

Um erst einmal eine Übersicht zu erhalten, kann man zunächst diesen Filterausdruck anwenden:

COMMENT HAS "CD-Album"

Für die anderen Teilaufgaben kann man vermutlich ein paar Aktionen in einer Aktionengruppe geschickt kombinieren.
Damit meine ich, dass alle Textmanipulationen in den Dateien in Hilfs-Tag-Feldern vorbereitet werden können, dann der sehr simple Export in die Text-Datei stattfindet und anschließend die Hilfs-Tag-Felder entfernt werden.

Ein anderer Ansatz wäre es, wenn alle Textmanipulationen in dem Export-Skript durchgeführt werden, und dabei die Tag-Felder in den Dateien nur gelesen werden.

So oder so muss man die Mp3tag Skriptsprache zu benutzen wissen.

############################################
Was soll eigentlich geschehen mit Artistennamen, die weniger als vier Buchstaben haben, wie z. B. "ABC"?
Sollen diese Namen rechts verlängert werden mit einem bestimmten Zeichen, so dass sich ein Kürzel von immer vier Zeichen ergibt?

Den Albumartist kann man zum Beispiel mit dieser Formel kürzen:

$left($regexp($upper(%ALBUMARTIST%),'[\U]',)$repeat('_',4),4)

Von:
AC-DC
Rolling Stones
aBc

Nach:
ACDC
ROLL
ABC_

Die Datumsangabe kann man zum Beispiel mit dieser Formel auf das Jahr kürzen:

$left(%YEAR%,4)

Beide Teile zusammengefügt sieht zum Beispiel so aus:

$left($regexp($upper(%ALBUMARTIST%),'[\U]',)$repeat('_',4),4)'#'$left(%YEAR%,4)

DD.20110519.1627.CEST


#3

Ja - das gefällt mir. Und vor allem: das versteh' ich. :slight_smile:
Damit fange ich heute Abend gleich an.

[scherz] Ich schau' mal in die "Gelben Seiten" - bestimmt finde ich jemanden, der mir diesen Ansatz
zu einer Lösung fortführt.[/scherz]
==> Diesen Ansatz traute ich mich nicht zu erwähnen ... ich taste mich aber mal in diese Richtung vor.

Naja, zumindest kann ich lesen - mal schauen, ob ich's auch verstehe. :book:

Danke.


#4

So, kleiner Erfolg:

$if($eql(%comment%,CD-Album),$upper($left($replace(%albumartist%,/,,-,),4))#%year%,)

@DetlevD
Ich habe erst jetzt gesehen, das Du Deinen Beitrag ergänzt hast. Danke.

Tja, berechtigte Frage. Und auch hier Danke für Deine Anregung mit dem "_". Vielleicht übernehme ich das. Zwar müssen es nicht immer 4 Zeichen sein, aber es wäre eine logisch und konsequent zu Ende gedacht.

Auf meinem Weg zum Ziel bin ich jetzt da angekommen.

Meine Exportkonfiguration sieht bisher so aus:

$filename(txt,utf-16)Interpret#Jahr
$loop(%_filename_ext%)$if($eql(%comment%,CD-Album),$upper($left($replace(%albumartist%,/,,-,),4))#%year%,)
$loopend()

Zufrieden bin ich aber noch nicht, denn ich brauche ja von einem Album nur einen Eintrag in der TXT und nicht eben so viele wie Songs im Album sind.... .

Magst Du mir nochmal die Richtung zeigen, ich die ich jetzt denken muß?
Ich glaube, jetzt gehts um Schleifen, oder? (i.S.v. $loop).


#5

Das kann man etwa in dieser Art tun ...

$filename($getEnv('USERPROFILE')'\Desktop\Mp3tag.Export.txt',ANSI)'Interpret|Jahr' $loop($regexp(%ALBUM%,'\,*\s*CD\s*\d+$',,1),1)$if($eql(%COMMENT%,'CD-Album'),$left($regexp($upper(%ALBUMARTIST%),'[\U]',)$repeat('_',4),4)'|'$left(%YEAR%,4),) $loopend()

DD.20110520.1252.CEST


#6

Danke, DetlevD das funktioniert.
Du hast mir sehr geholfen, und mein Thema/meine Aufgabe gelöst.
Ich finde es toll, das Du Dir die Zeit genommen hast.

Ich nehme mir jetzt die Zeit, zu verstehen, warum es funktioniert; bestimmt komme ich dann nocheinmal auf Dich zurück.