Contributor: ARIEL PABLO KLEIN
Unit Num2Let;
INTERFACE
Uses Crt;
Function num2letra(x: longint): String;
IMPLEMENTATION
Type
 Unidades = array[1..29] of string;
 Decenas = array[3..9] of string;
 Centenas = array[1..9] of string;
Const
 UnidMap: Unidades =
('UN','DOS','TRES','CUATRO','CINCO','SEIS','SIETE',
 'OCHO','NUEVE','DIEZ','ONCE','DOCE','TRECE',
 'CATORCE','QUINCE','DIECISEIS','DIECISIETE',
 'DIECIOCHO','DIECINUEVE','VEINTE','VEINTIUNA',
 
'VEINTIDOS','VEINTITRES','VEINTICUATRO','VEINTICINCO',
'VEINTISEIS','VEINTISIETE','VEINTIOCHO',
 'VEINTINUEVE');
 DecMap: Decenas =
('TREINTA','CUARENTA','CINCUENTA','SESENTA','SETENTA',
 'OCHENTA','NOVENTA');
 CentMap: Centenas =
('CIENTO','DOSCIENTOS','TRESCIENTOS','CUATROCIENTOS',
 'QUINIENTOS','SEISCIENTOS','SETECIENTOS',
 'OCHOCIENTOS','NOVECIENTOS');
Var
 N : LongInt;
Function num2letra(x: longint): String;
Var
 NS: String;
 i,j : byte;
 restemp,temp : String;
Function decifrar(y: string) : String;
var
 temp,temp2,temp3: String;
 I,Code,j: Integer;
Begin
 Temp:='';
 temp2:=y;
 for i:=1 to 3 do
 Begin
 Case length(y) of
 1:Begin
 val(y,j,code);
 if j>0 Then
 temp:=Temp+UnidMap[j];
 y:='';
 End;
 2:Begin
 val(y,j,code);
 if J>0 THen
 If j>29 Then
 Begin
 val(copy(y,1,1),j,code);
 y:=copy(y,2,1);
 Temp:=Temp+DecMap[j];
 val(y,j,code);
 if j>0 Then Temp:=Temp+' Y ';
 End
 Else
 Begin
 y:='';
 Temp:=Temp+UnidMap[j];
 End;
 End;
 3:Begin
 val(copy(y,1,1),j,code);
 if j>0 Then
 Temp:=Temp+CentMap[j]+' ';
 y:=copy(y,2,2);
 End;
 End;
 End;
 temp3:='';
 For j:= length(temp2)+1 to length(NS) do temp3:=Temp3+NS[j];
 NS:=Temp3;
 decifrar:=temp;
End;
Begin
 ResTemp:='';
 Str(x, NS);
 For i:=1 to 3 do
 Begin
 Case i of
 1:Begin
 If Length(NS)>6 Then
 Begin
 ResTemp:=decifrar(copy(NS,1,length(NS)-6));
 if copy(NS,1,length(NS)-6) = '1' Then 
 ResTemp:=ResTemp+' MILLON'
 else
 ResTemp:=ResTemp+' MILLONES ';
 End;
 End;
 2:Begin
 If Length(NS)>3 Then
 Begin
 
ResTemp:=ResTemp+decifrar(copy(NS,1,length(NS)-3));
 ResTemp:=ResTemp+' MIL '
 End;
 End;
 3:Begin
 If x> 0 then
 Begin
 ResTemp:=ResTemp+decifrar(NS);
 End
 Else
 num2letra:='CERO';
 End;
 End;
 End;
 num2letra:=restemp;
End;
Begin
End. === End of NUM2LET.PAS ===


AltStyle によって変換されたページ (->オリジナル) /