Hallo,
wäre es möglich, eigene Funktionen nach den bisherigen Scriptformatkonventionen zum Beispiel über eine externe Datei einzubinden?
Anwendungsfall:
Ich filtere das "The" und ein "&" aus Artist aus.
The Beatles wird Beatles
The Rolling Stones wird Stones
und
Jimmy Thackery & The Drivers
Jimmy Thackery & Tab Benoit
Jimmy Thackery & Duke Robillard
wird alles zu
Jimmy Thackery
Beispiel: Mein Scriptausschnitt für den Datei-Ordner
... root folder ...
... artist folder ...
$if($eql($strchr(%artist%,&),0),$if($eql($strstr(%artist%,The ),0),$trim(%artist%),
$trim($mid(%artist%,5)) ),$trim($left(%artist%,$sub($strchr(%artist%,&),1))))
... album Folder ...
... file name ...
Obwohl es schon recht unübersichtlich ist und es prima klappt, möchte ich nun noch eine Ordner-Ebene 1. Buchstabe des ermittelten Interpreten einbauen.
... root folder ...
... register folder ...
\$mid(
$if($eql($strchr(%artist%,&),0),$if($eql($strstr(%artist%,The ),0),$trim(%artist%),
$trim($mid(%artist%,5)) ),$trim($left(%artist%,$sub($strchr(%artist%,&),1))))
,1)
... artist folder ...
\$if($eql($strchr(%artist%,&),0),$if($eql($strstr(%artist%,The ),0),$trim(%artist%),
$trim($mid(%artist%,5)) ),$trim($left(%artist%,$sub($strchr(%artist%,&),1))))
... album Folder ...
... file name ...
Wenn man nun extern eine Funktion definieren könnte:
$define function MyFolderArtist(artist)
result :=
$if($eql($strchr(%artist%,&),0),$if($eql($strstr(%artist%,The ),0),$trim(%artist%), $trim($mid(%artist%,5)) ),$trim($left(%artist%,$sub($strchr(%artist%,&),1))))
$define end
sähe es so schon übersichtlicher aus
... root folder ...
... register folder ...
\$mid($MyFolderArtist(%artist%),1)
... artist folder ...
\$MyFolderArtist(%artist%)
... album Folder ...
... file name ...
Eine Alternative, um im Script nicht die Übersicht zu verlieren, wäre, ein mehrzeiliges Memofeld dafür zu nehmen: Beispielsweise wie in dem im Kürzel Tool Shortcut (www.typer.de).
Das Memo könnte dann so aussehen:
// -----------------------------------------------
// Mein Script für MP3TAG vom 08.08.2009
// -----------------------------------------------
// root folder
// -----------------------------------------------
// register folder
// -----------------------------------------------
\$mid(
$if($eql($strchr(%artist%,&),0),$if($eql($strstr(%artist%,The ),0),$trim(%artist%),
$trim($mid(%artist%,5)) ),$trim($left(%artist%,$sub($strchr(%artist%,&),1))))
,1)
// -----------------------------------------------
// artist folder
// -----------------------------------------------
\$if($eql($strchr(%artist%,&),0),$if($eql($strstr(%artist%,The ),0),$trim(%artist%),
$trim($mid(%artist%,5)) ),$trim($left(%artist%,$sub($strchr(%artist%,&),1))))
// -----------------------------------------------
// album folder
// -----------------------------------------------
// file name
// -----------------------------------------------
Der Parser müste lediglich vor der Auführung, die Kommentarzeilen // und alle crlf entfernen, bevor das Script an die bisher verwendete Routine im MP3Tag übergeben wird.
Viel Grüße Uwe