function Unidades(numero:Integer): String;
begin
case numero of
0: Result:='';
1: if FMasculino
then Result:='UN'
else Result:='UNA';
2: Result:='DOS';
3: Result:='TRES';
4: Result:='CUATRO';
5: Result:='CINCO';
6: Result:='SEIS';
7: Result:='SIETE';
8: Result:='OCHO';
9: Result:='NUEVE';
end;
end;
function Decenas(numero:integer): String;
begin
Case numero of
0:Result:='';
1..9:Result:=Unidades(numero);
10: Result:='DIEZ';
11: Result:='ONCE';
12: Result:='DOCE';
13: Result:='TRECE';
14: Result:='CATORCE';
15: Result:='QUINCE';
16: Result:='DIECISEIS';
17: Result:='DIECISIETE';
18: Result:='DIECIOCHO';
19: Result:='DIECINUEVE';
20: Result:='VEINTE';
21,24,25,27..29: Result:='VEINTI'+Unidades(numero mod 10);
22: Result:='VEINTIDOS';
23: Result:='VEINTITRES';
26: Result:='VEINTISEIS';
30: Result:='TREINTA';
40: Result:='CUARENTA';
50: Result:='CINCUENTA';
60: Result:='SESENTA';
70: Result:='SETENTA';
80: Result:='OCHENTA';
90: Result:='NOVENTA';
else Result:=Decenas(numero - numero mod 10)+' y '+ unidades(numero mod 10);
end;
end;
function Centenas(numero:integer): String;
begin
case numero of
0: Result:='';
1..99: Result:=Decenas(numero);
100: Result:='CIEN';
101..199: Result:='CIENTO '+Decenas(numero mod 100);
500: if FMasculino
then Result:='QUINIENTOS '
else Result:='QUINIENTAS ';
700: if FMasculino
then Result:='SETECIENTOS '
else Result:='SETECIENTAS ';
900: if FMasculino
then Result:='NOVECIENTOS '
else Result:='NOVECIENTAS ';
501..599,
701..799,
901..999: Result:= Centenas(numero - numero mod 100)+Decenas(numero mod 100);
else if FMasculino
then Result:=Unidades(numero div 100)+'CIENTOS'+' '+Decenas(numero mod 100)
else Result:=Unidades(numero div 100)+'CIENTAS'+' '+Decenas(numero mod 100);
end;
end;
function CorrigeTexto(Frase: String): String;
var
P: Integer;
begin
Result:= LowerCase(Frase);
P:= Pos(' ', Result);
while P > 0 do begin
Delete(Result, P, 1);
P:= Pos(' ', Result);
end;
end;