Hola..!! saludos a todos.. alguien me podria ayudar cen este programa..??
..---Programa que lee como entrada un número entre 0 y 999, y devuelve como salida el número escrito en letras.
Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________
-- Ariel D'Alfeo Córdoba, Argentina
Gracias a todos por sus suguerencias solo que lo que en relidad busco no es un programa de una base de datos sino un programa sencillo que introdusca un numero y de como salida su nombre en letras..
Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________
Disculpa si la pregunta te incomdo pero si no te gustan mis preguntas ignoralas.. o sea si no me vas a ayudar no me molestes ok..!!
Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________
Que la pasa a este gasnapiro….
MK
Cristian, y tu nieve de que la quieres?
* ----------------------------------------------------------PROCEDURE EnLetras(xnNumero,xcSymbol,xnSymbol,xlOmitDecimal)* ----------------------------------------------------------* LPARAMETERS xnNumero,xcSymbol,xnSymbol,xlOmitDecimal* xnNumero: Número que se convierte en expresión literal* xcSymbol: Símbolo que termina la expresión - DEfault="*"* xnSymbol: Repeticiones de xcSymbol* xlOmitDecimal: Si se omite la parte decimal cuando no tiene decimales* ----------------------------------------------------------------------* Autor: Fidel Charny* ----------------------------------------------------------------------* Basada en Alines() y GetWordNum() » Visual Fox Pro 9* ----------------------------------------------------------------------IF VARTYPE(xcSymbol)#"C" xcSymbol="*"ENDIFIF VARTYPE(xnSymbol)#"N" xnSymbol=3ENDIFIF VARTYPE(xnNumero)#"N" RETURN ""ENDIF
LOCAL lcLetra,lcparte,lcEnletra,lcDecimal,CV1,CV10,i,; lnDecimal,LnNumero,lcNumero,lcTerminador,; lcUnidades,lcDecPar,lcDecenas,lcCentenas store "" to LcEnLetras,CV1,CV10
lcTerminador=EVL(REPLICATE(xcSymbol,xnSymbol),"")
xnNumero=Abs(xnnumero)IF xnNumero = 0 STORE "0" TO CV1,CV10 STORE "CERO" TO LcEnLetras RETURN LcEnLetras+IIF(xlOmitDecimal,""," CON "+CV10+CV1+"/100"+lcTerminador)ENDIF
LOCAL ARRAY gasep(6,2)
gaSep[1,1]=1gaSep[2,1]=2gaSep[3,1]=3gaSep[4,1]=4gaSep[5,1]=5gaSep[6,1]=6
gaSep[1,2]=[]gaSep[2,2]=[MIL]gaSep[3,2]=[MILLON]gaSep[4,2]=[MIL]gaSep[5,2]=[BILLON]gaSep[6,2]=[MIL]
lcUnidades="UN,DOS,TRES,CUATRO,CINCO,SEIS,SIETE,OCHO,NUEVE"lcDecPar="ONCE,DOCE,TRECE,CATORCE,QUINCE,DIECISEIS,DIECISIETE,DIECIOCHO,DIECINUEVE"lcDecenas="DIEZ,VEINTE,TREINTA,CUARENTA,CINCUENTA,SESENTA,SETENTA,OCHENTA,NOVENTA"lcCentenas="CIENTO,DOSCIENTOS,TRESCIENTOS,CUATROCIENTOS,QUINIENTOS,"; +"SEISCIENTOS,SETECIENTOS,OCHOCIENTOS,NOVECIENTOS"
lnDecimal=0lnEntero=INT(xnNumero)lnDecimal=xnNumero - lnEnterolcNumero=ALLTRIM(TRANSFORM(lnEntero,"999,999,999,999,999"))
CVO=INT((xnNumero-INT(xnNumero))*100+.009)CVD=INT(CVO/10)CVU=INT(CVO-CVD*10)lcDecimal="CON "+LTRIM(STR(CVD))+LTRIM(STR(CVU))+"/100"IF lnDecimal=0.and.xlOmitDecimal lcDecimal=""ENDIF
RELEASE gapartesnlines=ALINES(gaLines,lcNumero,1,",")LOCAL ARRAY gaPartes(nLInes,4)STORE "" TO GaParteslnPas=nLinesFOR i=1 TO nlines gaPartes[i,1]=galines[i] gapartes[i,4]=lnPas lnpas=lnpas-1NEXT
FOR i=1 TO ALEN(gaPartes,1) lcLetra="" lcParte=gaPartes[i,1] lnValor=VAL(lcparte) lnLen=LEN(lcParte) lSaltUni=.f. DO case CASE lnLen=3 * 1 Centena IF LEFT(lcParte,1)#"0" IF LEFT(lcParte,1)="1".AND.RIGHT(lcParte,2)="00" lcLetra="CIEN" ELSE lcLetra=GETWORDNUM(LcCentenas,VAL(LEFT(lcParte,1)),",")+" " ENDIF ENDIF * 2 Decenas y Unidades lcSub=right(lcParte,2) DO case CASE LEFT(lcSub,1)="0" CASE LEFT(lcSub,1)="1" IF RIGHT(lcSub,1)="0" LcLetra=lcLetra+GETWORDNUM(LcDecenas,VAL(LEFT(lcSub,1)),",") ELSE lcLetra=lcLetra+GETWORDNUM(lcDecPar,VAL(RIGHT(lcSub,1)),",")+" " lSaltUni=.t. ENDIF CASE LEFT(lcSub,1)="2" IF RIGHT(lcSub,1)="0" lcLetra=lcLetra+GETWORDNUM(lcDecenas,VAL(LEFT(lcSub,1)),",")+" " lSaltUni=.t. ELSE lcLetra=lcLetra+"VEINTI" ENDIF OTHERWISE lSaltuni=IIF(RIGHT(lcSub,1)="0",.t.,.f.) lcLetra=lcLetra+GETWORDNUM(lcDecenas,VAL(LEFT(lcSub,1)),","); +IIF(RIGHT(lcSub,1)="0"," "," Y ")
ENDCASE * Unidades IF !lSaltUni.And.Right(lcParte,1)#"0" IF i=nLines.and.Right(lcParte,1)="1" lcLetra=lcLetra+"UNO" ELSE lcLetra=lcLetra+GETWORDNUM(lcUnidades,VAL(RIGHT(lcParte,1)),",") ENDIF ENDIF CASE lnLen=2 * 2 Decenas y Unidades lcSub=lcParte DO case CASE LEFT(lcSub,1)="0" CASE LEFT(lcSub,1)="1" IF RIGHT(lcSub,1)="0" lcLetra=lcLetra+GETWORDNUM(lcDecenas,VAL(LEFT(lcSub,1)),",")+" " ELSE lcLetra=lcLetra+GETWORDNUM(lcDecPar,VAL(RIGHT(lcSub,1)),",")+" " lSaltUni=.t. ENDIF CASE LEFT(lcSub,1)="2" IF RIGHT(lcSub,1)="0" lcLetra=lcLetra+GETWORDNUM(lcDecenas,VAL(LEFT(lcSub,1)),",")+" " lSaltUni=.t. ELSE lcLetra=lcLetra+"VEINTI" ENDIF OTHERWISE lSaltuni=IIF(RIGHT(lcSub,1)="0",.t.,.f.) lcLetra=lcLetra+GETWORDNUM(lcDecenas,VAL(LEFT(lcSub,1)),","); +IIF(RIGHT(lcSub,1)="0"," "," Y ") ENDCASE * Unidades IF !lSaltUni.And.Right(lcParte,1)#"0" IF i=nLines.and.Right(lcParte,1)="1" lcLetra=lcLetra+"UNO" ELSE lcLetra=lcLetra+GETWORDNUM(lcUnidades,VAL(RIGHT(lcParte,1)),",") ENDIF ENDIF CASE lnLen=1 IF lcParte#"0" IF i=nLines.and.lcParte="1" lcletra=lcLetra+"UNO" ELSE lcLetra=lcLetra+GETWORDNUM(lcUnidades,VAL(lcParte),",") ENDIF endif ENDCASE gaPartes[i,2]=ALLTRIM(lcLetra) lcAdd="" IF INLIST(GaPartes[i,4],3,5) IF lnValor>1 lcAdd="ES" ENDIF ENDIF gapartes[i,3]=gasep( ASCAN(gasep,gaPartes[i,4])+1 )+LcAddNEXTlcLetras=""FOR i=1 TO ALEN(gaPartes,1) IF !EMPTY(gaPartes[i,2]) lcLetras=lcLetras+ALLTRIM(gaPartes[i,2])+" "; +ALLTRIM(gaPartes[i,3])+" " ENDIFNEXT
lcEnLetras=STRTRAN(lcEnLetras,CHR(32)+CHR(32),CHR(32))lcEnLetras=ALLTRIM(lcLetras)+IIF(EMPTY(lcDecimal),""," "+LcDecimal); +lcTerminador
RETURN lcEnLetras
bueno disculpenme y les pido que me comprendan todos ya que soy novato en programar y bueno me uni a este grupo para aprender algo mas.. pero gracias por todas sus suguerencias..
no no esperaba un exe.. la verda ya tengo una idea acerca de este programa solo que no se como dividir el numero en unidades decenas y centenas..!! me podrías ayudar solo en eso por favor te lo voy a agradecer mucho..!!
Muchas gracias Victor y Analyzer sus respuestas me ayudaron mucho..!!
Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________
Minimo Cristian
Saludos Luis Maria te admiro
Luis María Guayán
Tucumán, Argentina
_____________________________
http://comunidadvfp.blogspot.com