FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Link de Convierte numero a letras ya no funciona :(
Posts: 880
Joined: Fri Jan 12, 2007 08:35 PM
Link de Convierte numero a letras ya no funciona :(
Posted: Wed Oct 22, 2008 11:44 PM

Hola

Quería bajar de las utilidades el archivo que convierte numero a letras pero el link ya no funciona :(

http://hyperupload.com/download/021257e ... a.prg.html

alguien lo tendrá que me lo pueda compartir

Gracias y muchos saluditos :wink:

Aida

Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Link de Convierte numero a letras ya no funciona :(
Posted: Wed Oct 22, 2008 11:50 PM
AIDA wrote:Hola

Quería bajar de las utilidades el archivo que convierte numero a letras pero el link ya no funciona :-)

http://hyperupload.com/download/021257e ... a.prg.html

alguien lo tendrá que me lo pueda compartir


Gracias y muchos saluditos :-)


Aida




Prueba este. También creo que en el foro de Clipper están otros.
No es mío. No recuerdo de donde lo obtuve.

FUNCTION NumLetra(CIFRA)
LOCAL FINAL, CENTS, NUEVA, TEMPORAL, MILLON

FINAL := ""
IF CIFRA < 0
FINAL := "IMPOSIBLE: CANTIDAD NEGATIVA"
RETURN(FINAL)
ELSE
CENTS := SUBSTR(STR(CIFRA, 15, 2), 14, 2)
NUEVA := INT(CIFRA)
ENDIF

************************
* MILLARES DE MILLON *
************************
TEMPORAL := INT(NUEVA/1000000000)
IF TEMPORAL > 0
FINAL := FINAL + GRP_EXPAND(TEMPORAL) + " MIL "
NUEVA := NUEVA - (TEMPORAL * 1000000000)
ENDIF

**********************
* UNIDADES DE MILLON *
**********************
TEMPORAL := INT(NUEVA/1000000)

DO CASE

CASE NUEVA < 2000000
IF (NUEVA % 1000000) = 0
MILLON := " MILLON DE "
ELSE
MILLON := " MILLON "
ENDIF

CASE NUEVA >= 2000000 .AND. NUEVA < 10000000
IF (NUEVA % 1000000) = 0
MILLON := " MILLONES DE "
ELSE
MILLON := " MILLONES "
ENDIF

CASE NUEVA >= 10000000 .AND. NUEVA < 100000000
IF (NUEVA % 1000000) = 0
MILLON := " MILLONES DE "
ELSE
MILLON := " MILLONES "
ENDIF

CASE NUEVA >= 100000000 .AND. NUEVA < 1000000000
IF (NUEVA % 1000000) = 0
MILLON := " MILLONES DE "
ELSE
MILLON := " MILLONES "
ENDIF

ENDCASE

IF TEMPORAL > 0
FINAL := FINAL + GRP_EXPAND(TEMPORAL) + MILLON
NUEVA := NUEVA - (TEMPORAL * 1000000)
ENDIF

***********************
* MILES *
***********************
TEMPORAL := INT(NUEVA/1000)
IF TEMPORAL > 0
FINAL := FINAL + GRP_EXPAND(TEMPORAL) + " MIL "
NUEVA := NUEVA - (TEMPORAL * 1000)
ENDIF
TEMPORAL := NUEVA

*******************
* UNIDADES *
*******************
IF TEMPORAL > 0
FINAL := FINAL + GRP_EXPAND(TEMPORAL)
ENDIF

IF SUBSTR(FINAL,1,2) = "UN" .AND. LEN(FINAL) = 2
** FINAL := FINAL +" "+ MONED +" CON " + CENTS +"/100"
FINAL := FINAL +" CON " + CENTS +"/100"
ELSE
** FINAL := FINAL +" "+ MONEDA+" CON " + CENTS +"/100"
FINAL := FINAL +" CON " + CENTS +"/100"
ENDIF

RETURN(FINAL)

********************

FUNCTION GRP_EXPAND(GRUPO_VAL)
LOCAL ONE_UNIT, TEN_UNIT, CEN_UNIT, GRUPO_STR, NUEVA1

ONE_UNIT := "UN DOS TRES CUATRO CINCO "
ONE_UNIT := ONE_UNIT+"SEIS SIETE OCHO NUEVE DIEZ "
ONE_UNIT := ONE_UNIT+"ONCE DOCE TRECE CATORCE QUINCE "
ONE_UNIT := ONE_UNIT+"DIECISEIS DIECISIETE DIECIOCHO DIECINUEVE VEINTE "
ONE_UNIT := ONE_UNIT+"VEINTIUN VEINTIDOS VEINTITRES VEINTICUATRO"
ONE_UNIT := ONE_UNIT+"VEINTICINCO VEINTISEIS VEINTISIETE VEINTIOCHO "
ONE_UNIT := ONE_UNIT+"VEINTINUEVE "

TEN_UNIT := " TREINTA CUARENTA CINCUENTASESENTA "
TEN_UNIT := TEN_UNIT+"SETENTA OCHENTA NOVENTA "

CEN_UNIT := "CIENTO DOSCIENTOS TRESCIENTOS CUATROCIENTOS"
CEN_UNIT := CEN_UNIT+ "QUINIENTOS SEISCIENTOS SETECIENTOS "
CEN_UNIT := CEN_UNIT+ "OCHOCIENTOS NOVECIENTOS "

GRUPO_STR := ""

IF GRUPO_VAL = 100
NUEVA1 := INT(GRUPO_VAL/100)
GRUPO_VAL := GRUPO_VAL - (NUEVA1 * 100)
GRUPO_STR := GRUPO_STR + " CIEN"
ENDIF

IF GRUPO_VAL > 100
NUEVA1 := INT(GRUPO_VAL/100)
GRUPO_STR := GRUPO_STR + TRIM(SUBSTR(CEN_UNIT, (NUEVA1 *13)-12,13))
GRUPO_VAL := GRUPO_VAL - (NUEVA1 * 100)
GRUPO_STR := GRUPO_STR + " "
ENDIF

IF GRUPO_VAL > 29
NUEVA1 := INT(GRUPO_VAL/10)-1
GRUPO_STR := GRUPO_STR + TRIM(SUBSTR(TEN_UNIT,(NUEVA1*9)-8,9))
NUEVA1 := INT(GRUPO_VAL/10)*10
GRUPO_VAL := GRUPO_VAL - NUEVA1
IF GRUPO_VAL > 0
GRUPO_STR := GRUPO_STR + " Y "
ENDIF
ENDIF

IF GRUPO_VAL > 0
GRUPO_STR := GRUPO_STR + TRIM(SUBSTR(ONE_UNIT,(GRUPO_VAL*12)-11,12))
ENDIF

RETURN(GRUPO_STR)


Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 880
Joined: Fri Jan 12, 2007 08:35 PM
GRACIAS
Posted: Wed Oct 22, 2008 11:56 PM

Muchos tenquius :D

vere como funciona y como usarla

Gracias :wink:

Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ

Continue the discussion