Sehr langen Befehl ausführen

Begonnen von zurrogrr, 21. Dezember 2013, 22:38:16

Vorheriges Thema - Nächstes Thema

zurrogrr

Hallo zusammen,

ich habe folgendens Problem:
Ich möchte in meiner Sammlung das Format der Vornamen meiner Künstler umstellen.
Bsp.: Aus 'Max Martin Mustermann' wird 'Mustermann, Max Martin'.
Mein Befehl sieht so aus:


T:='Name',$right('Name',$sub($len('Name'),$strrchr('Name', ))), $left('Name',$sub($strrchr('Name', ),1) )

Ich habe  den Teil T für alle Namen meiner Künstler, und schreibe ihn in einen $replace-Befehl  (der Form ($replace(%artist%),a,b,c,d) usw.).
Nun habe ich T aber 955-mal, sodass Matlab diesen langen $replace Befehl weder anzeigt noch ausführt!

Ich hoffe ihr habt eine Idee, was man da macht!

MfG

TomPro

Was auch immer Du vorhast???

Soll der Name nur in einer Kolumne innerhalb der Playlistdarstellung geändert werden, möchtest Du Deine Dateien neu Taggen oder sie gar umbenennen oder oder oder.

Es macht den Anschein, das Du um Fleißarbeit nicht herum kommst. Denn woher soll der Rechner wissen wo automatisch eine Umbenennung stattfinden soll. zur Verdeutlichung einige Beispiele:

Tina Turner >>> Turner, Tina                      <<< das willst Du
The Beatles >>> Beatles, The                    <<< das willst Du eventuell auch noch
Dream Theater >>> Theater, Dream             <<< kann ich mir nicht vorstellen das Du das willst
Peter, Paul & Marry >>> Marry, Peter, Paul &  <<< würdest Du das wollen

All das würde bei einem stumpfen Script, wofür auch immer, passieren. Also musst erst Du eine Säuberung vornehmen, für welche Dateien gilt Dein Wunsch und für welche nicht. Danach müsste dann das:

$substr(%TAG FIELD%,$strrchr(%TAG FIELD%,' '),$len(%TAG FIELD%))', '$substr(%TAG FIELD%,0,$sub($strrchr(%TAG FIELD%,' '),1))

funtionieren.

Gruß TomPro

zurrogrr

Danke für die Antwort TomPro!
Die Fleißarbeit habe ich schon getan! Ich habe für jeden Interpreten bei dem ich Vorname/n und Nachname vertauschen möchte einen Befehl in der Form: 'Name',$right('Name',$sub($len('Name'),$strrchr('Name', ))), $left('Name',$sub($strrchr('Name', ),1) )
(Efüllt das dasselbe wir dein Befehl)
Ich muss diesen Befehl für jeden der gewünschten Interpreten angeben, da ich mehrere Interpreten pro Titel habe, deswegen kann ich nicht wie in deinem Befehl einfach ein  %TAG FIELD% für Name einsetzen. Sonst würde aus dem Interpreten-Tag 'Dream Theater;Tina Turner' ja 'Turner, Dream Theater;Tina'.
Und wie gesagt, ich habe schon die Fleißarbeit gemacht, also für jeden Interpreten in meinem Fall 955 habe ich diesen oben genannten Befehl.
Mit replace-Befehl sieht das bei mir dann so aus:

$replace(%artist%,$right(Tina Turner,$sub($len(Tina Turner),$strrchr(Tina Turner, ))), $left(Tina Turner,$sub($strrchr(Tina Turner, ),1) ),$right(Hans Peter,$sub($len(Hans Peter),$strrchr(Hans Peter, ))), $left(Hans Peter,$sub($strrchr(Hans Peter, ),1) )) 

usw. für alle meine 955 Interpreten.
Mein Problem liegt jetzt bei der Ausführung, da foobar diesen langen Befehl nicht annehmen will bzw. ich kopiere in mit copy&paste in das Pattern-Feld, doch er erscheint nicht. Ich hatte gedacht, es gäbe vielleicht die Möglichkeit foobar über eine Konsole zu steuern, wo man auch einen solch langen Befehl eingeben kann.

MfG

PS: Habe mich im vorigen Beitrag verschrieben, statt Matlab meine ich natürlich foobar!

TomPro

Ich glaube wir reden aneinander Vorbei:

Ich hatte mit Fleißarbeit nicht gemeint das Du für jeden Künstler eine Entsprechung in Deine Formel mit einprogrammierst und Du damit einen 10.000 Zeichen umfassenden Programmcode erzeugst, nein ich meinte mit Fleißarbeit Du solltest EINE Playliste erstellen, in der nur all jene Interpreten enthalten sind welche Du gerne umtagen möchtest und den "kleinen Code" auf diese Anwenden, dem "kleinen Code" ist es nämlich egal ob die Quelle "Tina Turner" oder "Hans Peter" ist, bei beiden wird das Endergebnis das sein welches Du wünschst ohne das der "kleine Code" merkt das das zwei verschiedene Interpreten sind, muß er ja nicht wissen. DU und nicht DEIN CODE sorgst dafür das nur jene Files den Code durchlaufen, welche ihn auch durchlaufen soll. Der Code nimmt Dir die Tipparbeit ab mehr nicht.

[Unwissenheit Modus (also nur geraten)]
Dein "Monster Code" sprengt einfach den Speicherbereich, welcher für eigene Codes vom System zur Verfügung gestellt werden.
[/Unwissenheit Modus (also nur geraten)]

Vorschlag zwei:

Du hast Deinen "Monster Code" bestimmt irgendwo gespeichert. "Portioniere" ihn doch einfach in  mehrere kleine Häppchen (Try and Error was die Größe betrifft) und führe dann dem entsprechend für jede Portion einen eigenen Durchlauf durch.

Gruß TomPro