Help - Search - Members - Calendar
Full Version: Lücke vor und hinter eine Zahl setzen
Mp3tag Forums > Mp3tag - Deutsch > Allgemein
papi
Hallo zusammen,

ich bin gerade bei einem meiner letzten Rätsel angelangt, vielleicht kann mir hierbei nochmal jemand helfen:

Ich möchte gerne in %Albumartist% und %Artist% vor und hinter einer Zahl eine Lücke setzen, sofern dort keine Lücke vorhanden ist. Dies soll aber weder am Anfang noch am Ende des Ausdrucks und nur vor der jeweils ersten und hinter der jeweils letzten Ziffer eines Nummernblocks passieren.

(blödes) Beispiel:

2 In A Room And UB40Feat Waldgeist2000 -> 2 In A Room And UB 40 Feat Waldgeist 2000
DetlevD
QUOTE (papi @ Apr 11 2012, 03:48) *
... Ich möchte gerne in %Albumartist% und %Artist% vor und hinter einer Zahl eine Lücke setzen, sofern dort keine Lücke vorhanden ist. Dies soll aber weder am Anfang noch am Ende des Ausdrucks und nur vor der jeweils ersten und hinter der jeweils letzten Ziffer eines Nummernblocks passieren. (blödes) Beispiel:
2 In A Room And UB40Feat Waldgeist2000 -> 2 In A Room And UB 40 Feat Waldgeist 2000

$regexp($regexp($regexp('2 In A Room And UB40Feat Waldgeist2000','\d+',' $0 '),'\s+',' '),'^\s+|\s+$',)

... oder ...

$trim($regexp($regexp('2 In A Room And UB40Feat Waldgeist2000','\d+',' $0 '),'\s+',' '))

von:
"2 In A Room And UB40Feat Waldgeist2000"
nach:
"2 In A Room And UB 40 Feat Waldgeist 2000"

DD.20120411.0917.CEST
papi
QUOTE (DetlevD @ Apr 11 2012, 08:22) *
$regexp($regexp($regexp('2 In A Room And UB40Feat Waldgeist2000','\d+',' $0 '),'\s+',' '),'^\s+|\s+$',)

... oder ...

$trim($regexp($regexp('2 In A Room And UB40Feat Waldgeist2000','\d+',' $0 '),'\s+',' '))

von:
"2 In A Room And UB40Feat Waldgeist2000"
nach:
"2 In A Room And UB 40 Feat Waldgeist 2000"

DD.20120411.0917.CEST


Super! Vielen Dank!!!

Ich habe es gleich in %_FILENAME% und %_DIRECTORY% mit eingebaut.
Jetzt muss ich nur noch einmal klicken, dann... habe ich alles versaut :-) - nein, dann habe ich Ordnung im System, wenn ich nicht mal wieder irgendwelche Sonderfälle vergessen habe.

Danke nochmal!

Gruß
Papi
papi
QUOTE (papi @ Apr 11 2012, 08:47) *
Super! Vielen Dank!!!

Ich habe es gleich in %_FILENAME% und %_DIRECTORY% mit eingebaut.
Jetzt muss ich nur noch einmal klicken, dann... habe ich alles versaut :-) - nein, dann habe ich Ordnung im System, wenn ich nicht mal wieder irgendwelche Sonderfälle vergessen habe.

Danke nochmal!

Gruß
Papi


Und da bin ich auch schon wieder.

Es funktioniert wirklich prima. Jetzt würde ich abschließend gerne noch das _PARENT_DIRECTORY mit einbinden, aber es lässt sich definitiv nicht dazu bewegen, es dem _DIRECTORY gleich zu tun. Woran kann das liegen?
Ich habe auch schon "_FOLDERPATH" und dergl. ausprobiert, aber ohne Erfolg.

$regexp($regexp($regexp(%_PARENT_DIRECTORY%,'\d+',' $0 '),'\s+',' '),'^\s+|\s+$',)

Ich vermute einen Denkfehler von mir, stehe aber gerade auf meiner eigenen Leitung.

DetlevD
QUOTE (papi @ Apr 11 2012, 11:18) *
... Es funktioniert wirklich prima. Jetzt würde ich abschließend gerne noch das _PARENT_DIRECTORY mit einbinden, aber es lässt sich definitiv nicht dazu bewegen, es dem _DIRECTORY gleich zu tun. Woran kann das liegen? ...

Die technischen Informationsfelder in Mp3tag sind grundsätzlich nur lesbar.

Daneben bietet Mp3tag an die zwei Pseudo-Tag-Felder _FILENAME und _DIRECTORY, die man "beschreiben" kann, so dass eine Veränderung, außerhalb der Datei, im Dateisystem erzeugt wird.
Damit kann man eine Datei oder einen kompletten Ordner umbenennen oder an einen anderen Ort verschieben.

Wenn man Änderungen am Dateipfad durchführen will, so sollte man die beabsichtigte Änderung zunächst virtuell in einem Hilfs-Tag-Feld vorbereiten, und wenn dort jede Pfadangabe korrekt eingetragen ist, dann kann man den Inhalt des Hilfs-Tag-Feldes dazu benutzen, den Dateipfad im Dateisystem wirklich zu manipulieren ("first virtual, then real").

Wenn du im Dateipfad mehrere Ordnernamen ändern willst, dann musst du den Dateipfad entsprechend zerlegen, die Teile bearbeiten und wieder zusammen bauen, oder den Dateipfad als Ganzes bearbeiten, und schließlich ein Pseudo-Tag-Feld _FILENAME bzw. _DIRECTORY mit dem neuen Dateipfad bzw. mit dem neuen Ordnerpfad "beschreiben".

Beachte, dass das Umbenennen eines Ordners auch ein Verschieben des Ordners bewirken kann mit allen darin befindlichen Dateien (bei _DIRECTORY) oder nur mit den Musikdateien (bei _FILENAME).

DD.20120411.1200.CEST
papi
QUOTE (DetlevD @ Apr 11 2012, 10:54) *
...
Beachte, dass das Umbenennen eines Ordners auch ein Verschieben des Ordners bewirken kann mit allen darin befindlichen Dateien (bei _DIRECTORY) oder nur mit den Musikdateien (bei _FILENAME).
...


Nun ja, ich verwende diese Funktion schon ewig, indem ich im Rahmen einer grossen, kompakten Kombiänderung das Tag-Feld %_FILENAME% mittels dem String "..\Verschobene Daten\%_FOLDERPATH%\%_FILENAME%" formatiere.

Das Thema hatten wir schonmal: Bereits existierende Dateien erzeugen einen Fehler und fallen dabei raus.
Der verschobene Ordner wird dann der neue Ordner.
(Ich bin der McGuyver mit dem Radiergummi und der Kaffeetasse auf der i-Taste) rolleyes.gif

Aber lange Rede, kurzer Sinn - warum funktioniert es dann nicht auch bei "$regexp($regexp($regexp(%_PARENT_DIRECTORY%,'\d+',' $0 '),'\s+',' '),'^\s+|\s+$',)"?

Bei "$regexp($regexp($regexp(%_DIRECTORY%,'\d+',' $0 '),'\s+',' '),'^\s+|\s+$',)" geht es einwandfrei.


Mal meine Struktur (wie sie vermutlich die Meisten haben werden):

Alben:

M:\U\10CC\1989 - The Best Of 10 CC\01 - 10 CC And Godley And Creme - An Englishman In New York.mp3

Singles liegen stattdessen eine Ebene höher, ohne Tracknummer:

M:\U\10CC\10 CC And Godley And Creme - An Englishman In New York.mp3


Mit "Deinem" String wird "10cc" im Directory zu "10 cc", im Parent-Directory aber nicht.
Existiert aber im Parent eine Single, dann geht es einwandfrei, das ist aber natürlich nicht immer der Fall. :-/

DetlevD
QUOTE (papi @ Apr 11 2012, 15:14) *
...warum funktioniert es dann nicht auch bei "$regexp($regexp($regexp(%_PARENT_DIRECTORY%,'\d+',' $0 '),'\s+',' '),'^\s+|\s+$',)"? ...

Diese Frage wurde schon beantwortet. Die technischen Informationsfelder in Mp3tag sind grundsätzlich nur lesbar. "%_PARENT_DIRECTORY%" ist ein solches nur lesbares Pseudo-Tag-Feld.
Man kann die Pseudo-Tag-Felder _DIRECTORY bzw. _FILENAME beschreiben, um den Ordnerpfad bzw. Dateipfad zu manipulieren.

QUOTE (papi @ Apr 11 2012, 15:14) *
... meine Struktur ... Alben:
M:\U\10CC\1989 - The Best Of 10 CC\01 - 10 CC And Godley And Creme - An Englishman In New York.mp3
Singles liegen stattdessen eine Ebene höher, ohne Tracknummer:
M:\U\10CC\10 CC And Godley And Creme - An Englishman In New York.mp3 ...
Existiert aber im Parent eine Single, dann geht es einwandfrei ...

In diesem Fall haben die Single und die Albumtracks unterschiedliche Ordnerpfade.
Der Ordner der Single ist der Elternordner des Ordners der Albumtracks.

DD.20120412.0735.CEST
papi
QUOTE (DetlevD @ Apr 12 2012, 07:38) *
Diese Frage wurde schon beantwortet. Die technischen Informationsfelder in Mp3tag sind grundsätzlich nur lesbar. "%_PARENT_DIRECTORY%" ist ein solches nur lesbares Pseudo-Tag-Feld.
Man kann die Pseudo-Tag-Felder _DIRECTORY bzw. _FILENAME beschreiben, um den Ordnerpfad bzw. Dateipfad zu manipulieren.


In diesem Fall haben die Single und die Albumtracks unterschiedliche Ordnerpfade.
Der Ordner der Single ist der Elternordner des Ordners der Albumtracks.

DD.20120412.0735.CEST


Jetzt habe auch ICH es verstanden. :-)
Dann werde ich das wohl extern lösen müssen.

Weiß jemand ein gutes Tool, neben dem Mehrfachumbenenntool vom TotalCommander, um Verzeichnisnamen zu ändern oder muss ich da selber was schreiben?
ohrenkino
ZITAT(papi @ Apr 12 2012, 09:19) *
Jetzt habe auch ICH es verstanden. :-)
Dann werde ich das wohl extern lösen müssen.

Weiß jemand ein gutes Tool, neben dem Mehrfachumbenenntool vom TotalCommander, um Verzeichnisnamen zu ändern oder muss ich da selber was schreiben?

Das geht auch mit Mp3tag, wenn du einen absoluten pfad für die Tag-Feld-Formatierei angibst, also
M:\U\%artist%

Denn der Künstler ist doch immer auf derselben Verschachtelungsstufe, oder?
papi
QUOTE (ohrenkino @ Apr 12 2012, 09:30) *
Das geht auch mit Mp3tag, wenn du einen absoluten pfad für die Tag-Feld-Formatierei angibst, also
M:\U\%artist%

Denn der Künstler ist doch immer auf derselben Verschachtelungsstufe, oder?


Ja, das ist richtig. Aber ich weiß nicht, wie Du das meinst, bzw. wie ich das zur Anwendung bringen soll.
ohrenkino
ZITAT(papi @ Apr 12 2012, 09:33) *
Ja, das ist richtig. Aber ich weiß nicht, wie Du das meinst, bzw. wie ich das zur Anwendung bringen soll.

ein Pfadangabe mit dem aktuellen Verzeichnis oder dem Arbeitsverzeichnis ist eine relative Pfadangabe und beschreibt sozusagen den Pfad "von hinten".
Mit einer Absoluten Pfadangabe, die immer mit dem Laufwerksbuchstaben beginnt, beschreibt man den Pfad von vorne.
in deinem Beispiel mit der Single oder nicht gab es "von hinten" mal eine Ebene mehr oder weniger.
Wenn du aber für Tag-Feld-Formatieren _DIRECTORY so einen PFad angibst wie
M:\U\%artist%
beschreibst du immer dieselbe Menge Hierarchiestufen. und damit müsste der neue Verzeichnisname immer passen.
papi
QUOTE (ohrenkino @ Apr 12 2012, 20:08) *
ein Pfadangabe mit dem aktuellen Verzeichnis oder dem Arbeitsverzeichnis ist eine relative Pfadangabe und beschreibt sozusagen den Pfad "von hinten".
Mit einer Absoluten Pfadangabe, die immer mit dem Laufwerksbuchstaben beginnt, beschreibt man den Pfad von vorne.
in deinem Beispiel mit der Single oder nicht gab es "von hinten" mal eine Ebene mehr oder weniger.
Wenn du aber für Tag-Feld-Formatieren _DIRECTORY so einen PFad angibst wie
M:\U\%artist%
beschreibst du immer dieselbe Menge Hierarchiestufen. und damit müsste der neue Verzeichnisname immer passen.


Ach so ja, das mache ich bereits beim Einsortieren so.
Der Nachteil ist aber, dass die leeren bzw. alten Ordner dabei liegen bleiben, das kann man nur mit neuen Beständen machen oder man muss komplett abräumen und die alte Hirarchie danach löschen und ersetzen.
DetlevD
QUOTE (papi @ Apr 12 2012, 20:54) *
Ach so ja, das mache ich bereits beim Einsortieren so. Der Nachteil ist aber, dass die leeren bzw. alten Ordner dabei liegen bleiben, das kann man nur mit neuen Beständen machen oder man muss komplett abräumen und die alte Hirarchie danach löschen und ersetzen.

Probiere es mit _DIRECTORY anstelle von _FILENAME, dann sollte nichts "liegen bleiben".

DD.20120412.2205.CEST
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2014 Invision Power Services, Inc.