Well, I have tried to understand what there is going on, ... and I have given up.
But I wrote down a worksheet.
- Example Filenames ...
1 - filename.001.mp3 No Disk Nr
10 - filename.002.mp3 No Disk Nr
100 - filename.003.mp3 No Track Nr
1000 - filename.004.mp3 No Track Nr
0001 - filename.005.mp3 No Disk Nr
001 - filename.006.mp3 No Disk Nr
01 - filename.007.mp3 No Disk Nr
011 - filename.008.mp3 No Disk Nr
101 - filename.009.mp3 Disk Nr and Track Nr exist
0101 - filename.010.mp3 Disk Nr and Track Nr exist
Number format for Discnumber and Track can be or should be ...
DDTT
DD = Disk Nr
TT = Track Nr
- Save existing content from DISCNUMBER and TRACK ...
for possible later use to helper tag-fields ...
ORIG_DISCNUMBER <== $if2(%ORIG_DISCNUMBER%,%DISCNUMBER%)
ORIG_TRACK <== $if2(%ORIG_TRACK%,%TRACK%)
- Prepare helper tag-field for Discnumber and Track ...
Get one to four leading digits from filename into helper tag-field, ...
if there is no such number format, then set helper tag-field to '0000' ...
TEMP_DDTT <== $if($eql($regexp(%_filename%,'^(\d{1,4})(\D.+)?$',),),
$regexp(%_filename%,'^(\d{1,4})(\D.+)?$','$1'),'0000')
Make all leading number strings the same format, ...
by right adjust the given numbers with leading zeroes ...
TEMP_DDTT <== $right('0000'%TEMP_DDTT%,4)
Possible DDTT cases ...
0000 No Disk Nr and no Track Nr
0001 No Disk Nr
0100 No Track Nr
0101 Disk Nr and Track Nr exist
- Split TEMP_DDTT into Discnumber and Track, fill helper tag-fields ...
... with leading zero ...
TEMP_DISCNUMBER <== $left(%TEMP_DDTT%,2)
TEMP_TRACK <== $right(%TEMP_DDTT%,2)
... or without leading zero ...
TEMP_DISCNUMBER <== $div(%TEMP_DDTT%,100)
TEMP_TRACK <== $mod(%TEMP_DDTT%,100)
- Fill standard tag-fields ...
DISCNUMBER <== $ifgreater(%TEMP_DISCNUMBER%,0,%TEMP_DISCNUMBER%,)
TRACK <== $ifgreater(%TEMP_TRACK%,0,%TEMP_TRACK%,)
-
Remove helper tag-fields ...
... use action "Remove fields"
... or this way ...
TEMP_DDTT <== $char(0)
TEMP_DISCNUMBER <== $char(0)
TEMP_TRACK <== $char(0) -
Probably add a step ...
for comparing the new values with the original values ...
and decide what to do ...
DISCNUMBER ??? ORIG_DISCNUMBER
TRACK ??? ORIG_TRACK -
Probably remove original values ...
... use action "Remove fields"
... or this way ...
ORIG_DISCNUMBER <== $char(0)
ORIG_TRACK <== $char(0)
Format_DISCNUMBER_Set_DISCNUMBER_TRACK_from__DDTT_Filename_.mta (640 Bytes)
DD.20150319.1846.CET, DD.20150320.1220.CET
Format_DISCNUMBER_Set_DISCNUMBER_TRACK_from__DDTT_Filename_.mta (640 Bytes)