Pregunta: | 635 - CONVERTIR NUMERO A LETRAS |
Autor: | Marlon Lazo |
A mí me gustaria saber cómo podría hacer en Visual Fox una función, procedimiento ó programa que me convierta un número X en letras por ej: si se introduce 2 el despliegue DOS, si se introduce 103 el despliegue CIENTO TRES, si se introduce 444 el despliegue CUATRO CIENTOS CUARENTA Y CUATRO. Por su ayuda, muchas gracias |
Respuesta: | Guadalupe Leija Flores |
USO (a un mensaje): wait wind numatexto(4589.27)
********************************************* ***Funcion para convertir numeros a textos*** *** PRINCIPAL *** ********************************************* func numatexto para numero store padl(alltrim(str(numero,12,2)),12,'0') to texto store substr(texto,1,3) to millones store substr(texto,4,3) to miles store substr(texto,7,3) to cientos store substr(texto,11,2) to decimales store space(0) to texto txtmillones=conviertecifra(millones,1) txtmiles=conviertecifra(miles,0) txtcientos=conviertecifra(cientos,0) if len(alltrim(txtmillones))>0 if alltrim(txtmillones)="UN" texto=txtmillones+" MILLON" else texto=txtmillones+" MILLONES" endif endif if len(alltrim(txtmiles))>0 texto=texto+space(1)+txtmiles+" MIL" endif if alltrim(txtmiles+txtcientos)="UN" texto=texto+"UNO CON "+decimales+"/100" else texto=texto+space(1)+alltrim(txtcientos)+" PESOS "+decimales+"/100" endif return texto ********************************************* ***Funcion para convertir numeros a textos*** *** SECUNDARIA *** ********************************************* func conviertecifra para texto,sw centena=substr(texto,1,1) decena =substr(texto,2,1) unidad =substr(texto,3,1) txtcentena=funcentena(centena,decena,unidad) txtdecena=fundecena(decena,unidad) txtunidad=fununidad(decena,unidad) return txtcentena+space(1)+txtdecena+txtunidad ********************************************* ***Funcion para convertir numeros a textos*** *** CENTENAS *** ********************************************* func funcentena para centena,decena,unidad do case case centena="1" txtcentena="CIENTO" if decena+unidad="00" txtcentena="CIEN" endif case centena="2" txtcentena="DOSCIENTOS" case centena="3" txtcentena="TRESCIENTOS" case centena="4" txtcentena="CUATROCIENTOS" case centena="5" txtcentena="QUINIENTOS" case centena="6" txtcentena="SEISCIENTOS" case centena="7" txtcentena="SETECIENTOS" case centena="8" txtcentena="OCHOCIENTOS" case centena="9" txtcentena="NOVECIENTOS" case centena="0" txtcentena="" endcase return txtcentena ********************************************* ***Funcion para convertir numeros a textos*** *** DECENAS *** ********************************************* Func fundecena para decena,unidad do case case decena="1" txtdecena="DIEZ" do case case unidad="1" txtdecena="ONCE" case unidad="2" txtdecena="DOCE" case unidad="3" txtdecena="TRECE" case unidad="4" txtdecena="CATORCE" case unidad="5" txtdecena="QUINCE" case unidad="6" txtdecena="DIECISEIS" case unidad="7" txtdecena="DIECISIETE" case unidad="8" txtdecena="DIECIOCHO" case unidad="9" txtdecena="DIECINUEVE" endcase case decena="2" txtdecena="VEINTE" if unidad<>"0" txtdecena="VEINTI" endif case decena="3" txtdecena="TREINTA" if unidad<>"0" txtdecena="TREINTA Y " endif case decena="4" txtdecena="CUERENTA" if unidad<>"0" txtdecena="CUARENTA Y " endif case decena="5" txtdecena="CINCUENTA" if unidad<>"0" txtdecena="CINCUENTA Y " endif case decena="6" txtdecena="SESENTA" if unidad<>"0" txtdecena="SESENTA Y " endif case decena="7" txtdecena="SETENTA" if unidad<>"0" txtdecena="SETENTA Y " endif case decena="8" txtdecena="OCHENTA" if unidad<>"0" txtdecena="OCHENTA Y " endif case decena="9" txtdecena="NOVENTA" if unidad<>"0" txtdecena="NOVENTA Y " endif case decena="0" txtdecena="" endcase return txtdecena ********************************************* ***Funcion para convertir numeros a textos*** *** UNIDADES *** ********************************************* Func fununidad para decena,unidad if decena<>"1" do case case unidad="1" if sw=1 txtunidad="UNO" else txtunidad="UN" endif case unidad="2" txtunidad="DOS" case unidad="3" txtunidad="TRES" case unidad="4" txtunidad="CUATRO" case unidad="5" txtunidad="CINCO" case unidad="6" txtunidad="SEIS" case unidad="7" txtunidad="SIETE" case unidad="8" txtunidad="OCHO" case unidad="9" txtunidad="NUEVE" case unidad="0" txtunidad="" endcase else txtunidad="" endif return txtunidad |
Respuesta: | Pul Martinez |
Diseñe un procedimiento utilizando tres bases de datos, en las cuales aloje asi:
las unidades: uno,dos,tres,cuatro,...nueve las decenas: diez,veinte,treinta,cuarenta,...noventa las centenas: cien,doscientos,trescientos,...novecientos y la rutina lee el numero convirtiendolo primero a una cadena de caracteres, separando de tres en tres las cifras y en combinacion con las palabras millon, millones, mil, etc me funciona a la perfeccion si me escribes te la puedo enviar |
Respuesta: | MARIO FLORES ARIZACA |
Tengo una rutina que la utilizó en multiples aplicaciones, si la requiere por favor me escribe tanto para foxpro 2.6 DOS y para Visual Foxpro 5.0 para Windows |
Respuesta: | Néstor Torres |
Tengo una rutina que la utilizó en multiples aplicaciones, si la requiere por favor me escribe |
Respuesta: | David Fúnez |
Busca en la sección de archivos de http://www.portalfox.com ahí hay una función que convierte de números a letras. |
Respuesta: | William Finol |
Hola, amigo Marlon. tengo una función en Visual Foxpro que convierte cualquier numero decimal a letras. Escribeme al mi correo y te envio un form y su función. Es bastante efectiva, nunca me ha fallado...
Ok. |
Respuesta: | Ronald Najera Gonzalez |
Marlon: Si no haz encontrado la respuesta a tu problema tengo un programa que lo convierte. Actualmente lo utilizo para imprimir cheques y nunca me ha fallado Yo no lo hice me lo proporciono un profesor y con gusto si lo necesitas te lo puedo proporcionar. |
Respuesta: | Alejandro Salvador Vargas |
Amigo:
Tengo una fución que utilizo para unas facturas, esta función convirte números de hasta 15 caracteres de longitud, no es una función muy buena, pero al menos funciona. Si la deseas o alguien la desea, escríbanme a [email protected] Saludos |
Respuesta: | Xavi Vila |
En el apartado de Biblioteca de Temas de La Web del Programador, esta el código que realiza la conversión. |
Respuesta: | Jeg |
Hola amigo, yo tengo una función que hace lo que tu quieres, pero no te lo explico aqui porque es un poco largo ya que convierte numeros hasta 999999999, también tengo un control activex. Escríbeme y te lo enviaré. Saludos |