begin
if Length(ch)=1 then
Result:='0'+ch
else
Result:=ch;
end;
{преобразует денежную сумму в пропись}
function MoneyToSampl(M: Currency): string;
var
Int_Part, idx, idxIP, idxRP: integer;
Int_Str, Real_Part, Sampl: string;
begin
Int_Part:=Trunc(Int(M));
Int_Str:=IntToStr(Int_Part);
Real_Part:=DoubleChar(IntToStr(Trunc(Int((M-Int_Part+0.001)*100))));
Sampl:=NumToSampl(Int_Str);
idx:=StrToInt(Int_Str[Length(Int_Str)]);
if idx=0 then idx:=5;
idxIP:=Univer[idx, 1];
idx:=StrToInt(Real_Part[Length(Real_Part)]);
if idx=0 then idx:=5;
idxRP:=Univer[idx, 1];
Result:=Sampl+Rubl[idxIP]+Real_Part+' '+Cop[idxRP];
end;
Initialization
{Предположим файл находится на C:\ диске}
fFile:=TIniFile.Create('c:\lang.cnf');
try
{Заполнение массива рублей}
fString:=fFile.ReadString('Money', 'Rub', ',');
LexemsToDim(fString, Rubl);
{Заполнение массива копеек}
fString:=fFile.ReadString('Money', 'Cop', ',');
LexemsToDim(fString, Cop);
{Заполнение массива чисел}
fString:=fFile.ReadString('Nums', 'Numbers', ',');
LexemsToDim(fString, fdim);
NameNum[0, 1]:='';
for i:=1 to 9 do
NameNum[i, 1]:=fdim[i-1];
{Заполнение массива десятков}
fString:=fFile.ReadString('Nums', 'Tens', ',');
LexemsToDim(fString, fdim);
NameNum[0, 2]:='';
for i:=1 to 9 do
NameNum[i, 2]:=fdim[i-1];
{Заполнение массива сотен}
fString:=fFile.ReadString('Nums', 'Hundreds', ',');
LexemsToDim(fString, fdim);
NameNum[0, 3]:='';
for i:=1 to 9 do
NameNum[i, 3]:=fdim[i-1];
{Заполнение массива чисел после десяти}
fString:=fFile.ReadString('Nums', 'AfterTen', ',');
LexemsToDim(fString, fdim);
NameNum[0, 4]:='';
for i:=1 to 9 do
NameNum[i, 4]:=fdim[i-1];
{Заполнение расширений чисел}
Ext[0,1]:='';
Ext[0,2]:='';
Ext[0,3]:='';
{Тысячи}
fString:=fFile.ReadString('Nums', 'Thou', ',');
LexemsToDim(fString, fdim);
for i:=1 to 3 do
Ext[1, i]:=fdim[i-1];
{Миллионы}
fString:=fFile.ReadString('Nums', 'Mill', ',');
LexemsToDim(fString, fdim);
for i:=1 to 3 do
Ext[2, i]:=fdim[i-1];
{Миллиарды}
fString:=fFile.ReadString('Nums', 'Bill', ',');
LexemsToDim(fString, fdim);
for i:=1 to 3 do
Ext[3, i]:=fdim[i-1];
{Триллион}
fString:=fFile.ReadString('Nums', 'Thrill', ',');
LexemsToDim(fString, fdim);
for i:=1 to 3 do
Ext[4, i]:=fdim[i-1];
Zero:=fFile.ReadString('Nums', 'Zero', '0');
if Zero[Length(Zero)]=',' then
Zero:=Copy(Zero, 1, Length(Zero)-1)+' ';
One:=fFile.ReadString('Nums', 'One', '1');
if One[Length(One)]=',' then
One:=Copy(One, 1, Length(One)-1)+' ';
Two:=fFile.ReadString('Nums', 'Two', '0');
if Two[Length(Two)]=',' then
Two:=Copy(Two, 1, Length(Two)-1)+' ';
{Заполнение таблицы окончаний}
Univer[1,1]:=1; Univer[1,2]:=2; Univer[1,3]:=2; Univer[1,4]:=2;
Univer[2,1]:=3; Univer[2,2]:=2; Univer[2,3]:=2; Univer[2,4]:=2;
Univer[3,1]:=3; Univer[3,2]:=2; Univer[3,3]:=2; Univer[3,4]:=2;
Univer[4,1]:=3; Univer[4,2]:=2; Univer[4,3]:=2; Univer[4,4]:=2;
Univer[5,1]:=2; Univer[5,2]:=2; Univer[5,3]:=2; Univer[5,4]:=2;
Univer[6,1]:=2; Univer[6,2]:=2; Univer[6,3]:=2; Univer[6,4]:=2;
Univer[7,1]:=2; Univer[7,2]:=2; Univer[7,3]:=2; Univer[7,4]:=2;
Univer[8,1]:=2; Univer[8,2]:=2; Univer[8,3]:=2; Univer[8,4]:=2;
Univer[9,1]:=2; Univer[9,2]:=2; Univer[9,3]:=2; Univer[9,4]:=2;
finally
fFile.Free;
end;
end.