ReNamer:Scripts:Roman numerals serialization
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
The script does a serialization with roman numerals. The roman number is added at the end of the file name.
For example, "Book.doc" will turn into new "Book I.doc" and so on.
Tested
- ReNamer 5.74.4 Beta
Code
Author: SafetyCar. Date: 09 January 2009.
var
Count: Integer;
function ArabicToRoman(Number:Integer): WideString;
var
Fulls, Halves: TWideStringArray;
AllFulls, AllHalves, Arabic, Roman: WideString;
I, U: Integer;
begin
Roman := '';
Arabic := IntToStr(Number);
AllFulls := 'I|X|C|M|(X)|(C)|(M)';
AllHalves := 'V|L|D|(V)|(L)|(D)';
Fulls := WideSplitString(AllFulls, '|');
Halves := WideSplitString(AllHalves, '|');
for I:=0 to Length(Arabic)-1 do
begin
U := StrToInt(Arabic[Length(Arabic)-I]);
If U = 0 then Roman := Roman;
If U = 1 then Roman := Fulls[i] + Roman;
If U = 2 then Roman := Fulls[i] + Fulls[i] + Roman;
If U = 3 then Roman := Fulls[i] + Fulls[i] + Fulls[i] + Roman;
If U = 4 then Roman := Fulls[i] + Halves[i] + Roman;
If U = 5 then Roman := Halves[i] + Roman;
If U = 6 then Roman := Halves[i] + Fulls[i] + Roman;
If U = 7 then Roman := Halves[i] + Fulls[i] + Fulls[i] + Roman;
If U = 8 then Roman := Halves[i] + Fulls[i] + Fulls[i] + Fulls[i] + Roman;
If U = 9 then Roman := Fulls[i] + Fulls[I+1] + Roman;
end;
Result := Roman;
end;
begin
Count := Count + 1;
FileName := WideExtractBaseName(FileName) + ' ' + ArabicToRoman(Count) + WideExtractFileExt(FileName);
end.