# Bedingtes Aufteilen des Filename in Disc/Tracknummer

**URL:** https://community.mp3tag.de/t/bedingtes-aufteilen-des-filename-in-disc-tracknummer/16697
**Category:** Allgemein
**Created:** [March 15, 2015, 6:36pm UTC](https://community.mp3tag.de/t/bedingtes-aufteilen-des-filename-in-disc-tracknummer/16697 "2015-03-15T18:36:24Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![TheBlutsvente](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/t/eb8c5e/32.png) [@TheBlutsvente](https://community.mp3tag.de/u/TheBlutsvente)
#### Post date: [March 15, 2015, 6:36pm UTC](https://community.mp3tag.de/t/bedingtes-aufteilen-des-filename-in-disc-tracknummer/16697/1 "2015-03-15T18:36:24Z")

</div>

Hallo,

ich versuche eine Aktion zu erstellen, die nur bei Vorliegen eines bestimmten Formats im Filenames den relevanten Anfangsteil des Filenames in Discnummer und Tracknummer aufsplittet.

Soll-Format für das Aufsplitten:  
dreistellige Disc+Tracknummer gefolgt von einem Unterstrich oder einem Minus bzw. einem nichtnumerischem Zeichen und dahinter der "Rest", also am Beispiel:

Beispiel Filename: 123\_Madonna - Into The Groove.mp3 ==\> Discnummer = 1 und Track =23  
Beispiel Filename: 123-Madonna - Into The Groove.mp3 ==\> Discnummer = 1 und Track =23  
Beispiel Filename: 123 Madonna - Into The Groove.mp3 ==\> Discnummer = 1 und Track =23  
Beispiel Filename: 023 Madonna - Into The Groove.mp3 ==\> Discnummer = "leer" und Track =23  
Beispiel Filename: Madonna - Into The Groove.mp3 ==\> keine Aktion  
Beispiel Filename: 12 Madonna - Into The Groove.mp3 ==\> keine Aktion  
Beispiel Filename: 1234 Madonna - Into The Groove.mp3 ==\> keine Aktion

Mein bisheriger Ansatz für die Aktion zum Aufspiltten in den einen Teil der Discnumber sieht so aus:

Aktion: Tag-Feld formatieren Feld: DISCNUMBER Formatstring: **$if($eql($left(%\_filename%,4),\d\d\d\D)),$left(%\_filename%,1),)**

Mindestens ein Fehler in meiner Denke scheint zu sein, dass die $eql-Funktion wohl keine Strings miteinander vergleichen kann sondern nur Zahlenwerte...

Danke für Eure Unterstützung im Voraus!

---

<div class="post-metadata">

### Author: ![ohrenkino](https://community.mp3tag.de/user_avatar/community.mp3tag.de/ohrenkino/32/4843_2.png) [@ohrenkino](https://community.mp3tag.de/u/ohrenkino)
#### Post date: [March 15, 2015, 6:48pm UTC](https://community.mp3tag.de/t/bedingtes-aufteilen-des-filename-in-disc-tracknummer/16697/2 "2015-03-15T18:48:39Z")

</div>

Für das Tag-Feld formatieren gehen keine regulären Ausdrücke, es sei denn, du nimmst $regexp().

Da die Fälle aber sowie völlig unterschiedliche Muster abdecken sollen, würde ich vorschlagen, zuerst das Feld TRACK zu füllen mit entweder einer Aktion vom Typ "Tag-Feld importieren" oder Konverter\>Filename-Tag

Und dann stürzt du dich auf das Feld Track.  
die 3-stelligen Zahlen kannst du mit  
$div(%track%,100) für %discnumber%  
und  
$mod(%track%,100) für %track%  
zerlegen.  
Damit wird auch 1234 zerlegt - da kannst du ja gucken, was du tust, wenn DISCNUMBER größer als 9 ist.

---

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [March 16, 2015, 7:41am UTC](https://community.mp3tag.de/t/bedingtes-aufteilen-des-filename-in-disc-tracknummer/16697/3 "2015-03-16T07:41:04Z")

</div>

> [@Blutsvente](#):
>
> Hallo, ich versuche eine Aktion zu erstellen, die nur bei Vorliegen eines bestimmten Formats im Filenames den relevanten Anfangsteil des Filenames in Discnummer und Tracknummer aufsplittet. ...

### Vorschlag 1, mit Filter ... mit Regexp ...

Filter: `"%_filename%" MATCHES "^\d\d\d[_-]"`

#### Aktion #1: "Tag-Feld formatieren"

Feld: DISCNUMBER  
Formatstring: `$regexp($div($regexp(%_filename%,'^(\d\d\d)[_-].*$','$1'),100),'^0$',)`

#### Aktion #2: "Tag-Feld formatieren"

Feld: TRACK  
Formatstring: `$mod($regexp(%_filename%,'^(\d\d\d)[_-].*$','$1'),100)`

### Vorschlag 2, ohne Filter ... mit Regexp ...

#### Aktion #1: "Tag-Feld formatieren"

Feld: DISCNUMBER  
Formatstring: `$if($eql($regexp(%_filename%,'^(\d\d\d)[_-].*$',),),$regexp($div($regexp(%_filename%,'^(\d\d\d)[_-].*','$1'),100),'^0$',),)`

#### Aktion #2: "Tag-Feld formatieren"

Feld: TRACK  
Formatstring: `$if($eql($regexp(%_filename%,'^(\d\d\d)[_-].*$',),),$mod($regexp(%_filename%,'^(\d\d\d)[_-].*','$1'),100),)`

### Vorschlag 3, Alternative mit Standardfunktionen ...

#### Aktion #1: "Tag-Feld formatieren"

Feld: DISCNUMBER  
Formatstring: `$if($eql($len($num(%_filename%,1)),3),$div($num(%_filename%,1),100),)`

#### Aktion #2: "Tag-Feld formatieren"

Feld: TRACK  
Formatstring: `$if($eql($len($num(%_filename%,1)),3),$mod($num(%_filename%,1),100),)`

#### Aktion #3: "Tag-Feld formatieren"

Feld: TRACK  
Formatstring: `$if2(%TRACK%,$num(%_filename%,1))`

Siehe auch ...  
[/t/10286/1](https://community.mp3tag.de/t/10286/1)

DD.20150316.0957.CET

---

<div class="post-metadata">

### Author: ![TheBlutsvente](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/t/eb8c5e/32.png) [@TheBlutsvente](https://community.mp3tag.de/u/TheBlutsvente)
#### Post date: [March 16, 2015, 4:49pm UTC](https://community.mp3tag.de/t/bedingtes-aufteilen-des-filename-in-disc-tracknummer/16697/4 "2015-03-16T16:49:35Z")

</div>

Tausend Dank Euch beiden! Das ist eine klasse Lösung!

> [@DetlevD](#):
>
> Siehe auch ...  
> [/t/10286/1](https://community.mp3tag.de/t/10286/1)

Danke! Ich hatte über eine Stunde vergeblich nach diesem Thread gesucht bis ich gepostet habe ![:book:](https://community.mp3tag.de/uploads/default/original/1X/0036d5b68f6226c53f6c68abfd0a7b8096fd4505.gif ":book:")  
Beste Grüße!
