45 lines
827 B
ObjectPascal
45 lines
827 B
ObjectPascal
const
|
|
PAD_TO_LENGTH = 3;
|
|
|
|
function CountDigits(const S: WideString; StartI: Integer): Integer;
|
|
var I: Integer;
|
|
begin
|
|
Result := 0;
|
|
for I:=StartI to WideLength(S) do
|
|
begin
|
|
if IsWideCharDigit(S[I]) then
|
|
Inc(Result)
|
|
else
|
|
Break;
|
|
end;
|
|
end;
|
|
|
|
function MakeZeros(Count: Integer): WideString;
|
|
var I: Integer;
|
|
begin
|
|
Result := '';
|
|
for I:=1 to Count do
|
|
Result := Result + '0';
|
|
end;
|
|
|
|
var
|
|
Start, Count: Integer;
|
|
|
|
begin
|
|
Start := 1;
|
|
while Start < WideLength(FileName) do
|
|
begin
|
|
Count := CountDigits(FileName, Start);
|
|
if (Count > 0) then
|
|
if (Count < PAD_TO_LENGTH) then
|
|
begin
|
|
WideInsert(MakeZeros(PAD_TO_LENGTH-Count), FileName, Start);
|
|
Start := Start + PAD_TO_LENGTH;
|
|
end
|
|
else
|
|
Start := Start + Count
|
|
else
|
|
Inc(Start);
|
|
end;
|
|
end.
|