Lee Número
- Ximorro
- Profesional del Autoit
- Mensajes: 1500
- Registrado: 10 Jul 2009, 12:35
- Ubicación: Castellón, España
Lee Número
LeeNumero.au3 ofrece una función llamada _LeeNumero que escribe en letra un número entero pasado como dígitos.
Es la función base, la comprobación de que la entrada sea correcta (un número entero sin puntos o comas, etc.) se deja al llamante.
El resultado lo da en minúsculas, que aunque parezca una tontería complica mucho las cosas pues números en principio iguales dejan de serlo porque según dónde estén tienen acento o no. Por ejemplo 1021021 es "un millón veintiún mil veintiuno", los 1, a pesar de ser en los tres casos unidades, tienen tres modos (un, ún y uno).
Lo he programado hasta números gigantescos, el mayor es este:
999999999999999999999999999999999999999999999999999999999999999999
con puntitos de millar:
999.999.999.999.999.999.999.999.999.999.999.999.999.999.999.999.999.999.999.999.999.999
Se empieza leyendo:
novecientos noventa y nueve mil novecientos noventa y nueve decallones...
Sí, decallones, lo que aprende uno cuando investiga un poco para los programas...
Como ejemplo de uso se adjunta el archivo LeeNumeroEjemplo.au3, que incluye 3 ejemplos de uso diferente (descomentar unos u otros para ejecutarlos).
El primer código, activado por defecto, es el más interesante, va leyendo números aleatoriamente, hasta que el usuario cancela. La distribución aleatoria se hace por número de cifras, porque si no siempre saldrían números gigantescos. Se cambian algunas cifras a cero porque esos números crean más problemas a _LeeNumero. El segundo ejemplo es un código rápido para probar la función con un número dado.
El tercero es para ver cómo es de rápido.
El cuarto cuenta de 1 a 150.
Espero que os guste. Vi muchos para hacerlo en inglés pero en castellano es mucho más difícil. En inglés cada grupo de 3 indica un cambio de millar, millón, billón, trillón... en cambio nosotros tenemos millar, millón, millares de millón, billón, millares de billón...
Es la función base, la comprobación de que la entrada sea correcta (un número entero sin puntos o comas, etc.) se deja al llamante.
El resultado lo da en minúsculas, que aunque parezca una tontería complica mucho las cosas pues números en principio iguales dejan de serlo porque según dónde estén tienen acento o no. Por ejemplo 1021021 es "un millón veintiún mil veintiuno", los 1, a pesar de ser en los tres casos unidades, tienen tres modos (un, ún y uno).
Lo he programado hasta números gigantescos, el mayor es este:
999999999999999999999999999999999999999999999999999999999999999999
con puntitos de millar:
999.999.999.999.999.999.999.999.999.999.999.999.999.999.999.999.999.999.999.999.999.999
Se empieza leyendo:
novecientos noventa y nueve mil novecientos noventa y nueve decallones...
Sí, decallones, lo que aprende uno cuando investiga un poco para los programas...
Como ejemplo de uso se adjunta el archivo LeeNumeroEjemplo.au3, que incluye 3 ejemplos de uso diferente (descomentar unos u otros para ejecutarlos).
El primer código, activado por defecto, es el más interesante, va leyendo números aleatoriamente, hasta que el usuario cancela. La distribución aleatoria se hace por número de cifras, porque si no siempre saldrían números gigantescos. Se cambian algunas cifras a cero porque esos números crean más problemas a _LeeNumero. El segundo ejemplo es un código rápido para probar la función con un número dado.
El tercero es para ver cómo es de rápido.
El cuarto cuenta de 1 a 150.
Espero que os guste. Vi muchos para hacerlo en inglés pero en castellano es mucho más difícil. En inglés cada grupo de 3 indica un cambio de millar, millón, billón, trillón... en cambio nosotros tenemos millar, millón, millares de millón, billón, millares de billón...
- Adjuntos
-
- LeeNumero.rar
- (2.59 KiB) Descargado 564 veces
Última edición por Ximorro el 30 Nov 2009, 14:12, editado 1 vez en total.
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Re: Lee Número
La verdad me gustan mucho tus aplicaciones, muy bien programadas, prolijas y funcionales.
cuarenta y ocho mil quinientos setenta y siete quintillones cien mil quinientos cuatrillones doscientos veintiún mil setenta trillones siete mil ochocientos noventa y cinco billones cuatrocientos tres mil cuatrocientos cincuenta millones treinta mil treinta y nueve.
cuarenta y ocho mil quinientos setenta y siete quintillones cien mil quinientos cuatrillones doscientos veintiún mil setenta trillones siete mil ochocientos noventa y cinco billones cuatrocientos tres mil cuatrocientos cincuenta millones treinta mil treinta y nueve.
No soy un hombre de plegarias, pero si estás en el cielo sálvame por favor Superman!
- Chefito
- Profesional del Autoit
- Mensajes: 2035
- Registrado: 21 Feb 2008, 18:42
- Ubicación: Albacete/Cuenca (España)
Re: Lee Número
Juer. Perdona Ximorro que no te dijese nada de este script.....se me pasó. Como escribistes tantos de golpe, lo debí abrir y por alguna razón no acabé de verlo.
Me ha gustado mucho el curro que has hecho y el resultado final. Esto queda guardado en mi carpeta de script por si algún día lo necesito . Me estas dejando atras tiiiiiooooo!!!.
Como sigas así me convierte en un novato! .
Saludos.
Me ha gustado mucho el curro que has hecho y el resultado final. Esto queda guardado en mi carpeta de script por si algún día lo necesito . Me estas dejando atras tiiiiiooooo!!!.
Como sigas así me convierte en un novato! .
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Re: Lee Número
Qué es curro en España? Acá un curro es... como una estafa :P Algo para perjudicar a alguien.. jeje.Chefito escribió: Me ha gustado mucho el curro que has hecho
Perdón por comentar estupideces :P
No soy un hombre de plegarias, pero si estás en el cielo sálvame por favor Superman!
Re: Lee Número
jajaja, si, aca es otra cosa jaja. segun me dijeron es por ej un trabajo.. algo k traes haciendo entremanos pero no maloNahuel escribió:Qué es curro en España? Acá un curro es... como una estafa :P Algo para perjudicar a alguien.. jeje.Chefito escribió: Me ha gustado mucho el curro que has hecho
Perdón por comentar estupideces :P
Un laburo de aca :O jajajaja
Salu2
Aunk no m Buskes, Seguro m enkontras!
- Chefito
- Profesional del Autoit
- Mensajes: 2035
- Registrado: 21 Feb 2008, 18:42
- Ubicación: Albacete/Cuenca (España)
Re: Lee Número
Jajajajaja.
En españa: curro = trabajo.
Eso quedaría: Me ha gustado mucho el trabajo que has hecho.
Saludos.
En españa: curro = trabajo.
Eso quedaría: Me ha gustado mucho el trabajo que has hecho.
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
- Ximorro
- Profesional del Autoit
- Mensajes: 1500
- Registrado: 10 Jul 2009, 12:35
- Ubicación: Castellón, España
Re: Lee Número
Gracias foreros, me alegro de que os guste. Estas rutinillas a veces vienen bien.
Nahuel, ¿ese número es un mensaje cifrado?... no sé, ¡pues este sí que lo es!:
ciento sesenta y un decallones ochenta y seis mil ciento cinco nonillones ciento dieciocho mil noventa y siete octillones treinta y dos mil sesenta y cinco septillones ciento diecisiete mil ciento dieciséis sextillones ciento once mil setenta y tres quintillones ochenta y cuatro mil treinta y dos cuatrillones ciento un mil ciento quince trillones ciento doce mil noventa y siete billones doscientos cuarenta y un mil ciento once millones ciento ocho mil treinta y tres
Joer, y eso sólo son 21 caracteres (sirva esto de pista)
Muy compacto no es el sistema.
Chefito, qué te voy a dejar atrás, si eres el maestro de las librerías de Windows... Y estamos esperando esos programas que tienes entre manos, ¿qué tal va el splitter?
Nahuel no es ninguna estupidez, mejor aclarar las cosas. Sí, es un timo, el primer número que os sale es la cantidad de pasta que pasa de vuestra cuenta a mi cartilla secreta en Suiza, je, je.
Y por si hay dudas, pasta = dinero
En serio las diferencias con el idioma nos las aclaramos y aprendemos todos, especialmente por si alguien alguna vez se siente ofendido ¡seguramente significaba otra cosa!
Para nosotros ir a currar es ir a trabajar, así que ahí estaríamos diciendo "¡Me voy a estafar un rato!", ja, ja, ja, habrá que tener cuidado.
Nahuel, ¿ese número es un mensaje cifrado?... no sé, ¡pues este sí que lo es!:
ciento sesenta y un decallones ochenta y seis mil ciento cinco nonillones ciento dieciocho mil noventa y siete octillones treinta y dos mil sesenta y cinco septillones ciento diecisiete mil ciento dieciséis sextillones ciento once mil setenta y tres quintillones ochenta y cuatro mil treinta y dos cuatrillones ciento un mil ciento quince trillones ciento doce mil noventa y siete billones doscientos cuarenta y un mil ciento once millones ciento ocho mil treinta y tres
Joer, y eso sólo son 21 caracteres (sirva esto de pista)
Muy compacto no es el sistema.
Chefito, qué te voy a dejar atrás, si eres el maestro de las librerías de Windows... Y estamos esperando esos programas que tienes entre manos, ¿qué tal va el splitter?
Nahuel no es ninguna estupidez, mejor aclarar las cosas. Sí, es un timo, el primer número que os sale es la cantidad de pasta que pasa de vuestra cuenta a mi cartilla secreta en Suiza, je, je.
Y por si hay dudas, pasta = dinero
En serio las diferencias con el idioma nos las aclaramos y aprendemos todos, especialmente por si alguien alguna vez se siente ofendido ¡seguramente significaba otra cosa!
Para nosotros ir a currar es ir a trabajar, así que ahí estaríamos diciendo "¡Me voy a estafar un rato!", ja, ja, ja, habrá que tener cuidado.
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
- Chefito
- Profesional del Autoit
- Mensajes: 2035
- Registrado: 21 Feb 2008, 18:42
- Ubicación: Albacete/Cuenca (España)
Re: Lee Número
Conocedor de las librerías de win? Digamos que simplemente me defiendo .Ximorro escribió:Chefito, qué te voy a dejar atrás, si eres el maestro de las librerías de Windows... Y estamos esperando esos programas que tienes entre manos, ¿qué tal va el splitter?
Respecto a lo del splitter......no te lo vas a creer pero apenas lo he tocado (digamos que apenas he programado nada) . Si es que soy un gandul muy graaaanndeeeeee . A ver si me animo y hago algo.
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Re: Lee Número
Amigo, para descifrar el mensaje me vas a tener que hacer un script que haga el proceso inverso :P Pasar de cadena a número :P
No soy un hombre de plegarias, pero si estás en el cielo sálvame por favor Superman!
- Ximorro
- Profesional del Autoit
- Mensajes: 1500
- Registrado: 10 Jul 2009, 12:35
- Ubicación: Castellón, España
Re: Lee Número
Hombre Nahuel ese sería un programa interesante, pero bastante más complicadillo que éste
Lo bueno del mensaje cifrado es que uno no lo descifra por el coñazo que supone pasar el texto a número, ja, ja.
Bueno, como tampoco se trata de torturaros aquí va el numerito de marras:
161086105118097032065117116111073084032101115112097241111108033
Por si no os molan estos acertijos un día de estos pondré el script que hice para codificar el mensaje, a partir de ahí hacer el decodificador estará chupao...
Lo bueno del mensaje cifrado es que uno no lo descifra por el coñazo que supone pasar el texto a número, ja, ja.
Bueno, como tampoco se trata de torturaros aquí va el numerito de marras:
161086105118097032065117116111073084032101115112097241111108033
Por si no os molan estos acertijos un día de estos pondré el script que hice para codificar el mensaje, a partir de ahí hacer el decodificador estará chupao...
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Re: Lee Número
Hei Ximorro ...
Pues gracias pero ya encontre una possible solucion ....seguramente es una "mierda" pero me va y eso es lo bueno !
Para los que no sepan de que va..esto es un possible code para crear una input, para poner el numero que queremos que nos leea el code tan bueno de Ximorro.
En realidad no es un code pensado que digamos por lo hice con un poco de suerte, pero queria saber si se podia...y pobe!
Pero porfavor ponganme lo que harian ustedes...porque por mucho que funciona e el mio es una "chapuza" !! ;)
GRACIAS Y MUY BUEN CODE
Pues gracias pero ya encontre una possible solucion ....seguramente es una "mierda" pero me va y eso es lo bueno !
Código: Seleccionar todo
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <LeeNumero.au3>
#Region
Local $aa, $datos1, $parte, $result, $Form1, $Input1, $Button1, $nMsg
$Form1 = GUICreate("Numeros", 137, 64, 192, 124)
$Input1 = GUICtrlCreateInput("", 8, 8, 113, 21)
$Button1 = GUICtrlCreateButton("Con letras...", 24, 32, 75, 25, $WS_GROUP)
GUISetState()
#Region
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
_fall()
EndSwitch
WEnd
Func _fall()
$datos1 = GUICtrlRead($Input1)
$result = _LeeNumero($datos1)
$aa = MsgBox(1, $datos1, $result)
EndFunc
En realidad no es un code pensado que digamos por lo hice con un poco de suerte, pero queria saber si se podia...y pobe!
Pero porfavor ponganme lo que harian ustedes...porque por mucho que funciona e el mio es una "chapuza" !! ;)
GRACIAS Y MUY BUEN CODE
Sin error no hay esfuerzo, sin esfuerzo no se programa!
- Ximorro
- Profesional del Autoit
- Mensajes: 1500
- Registrado: 10 Jul 2009, 12:35
- Ubicación: Castellón, España
Re: Lee Número
Bueno gracias, no es para tanto.
Y nada de "mierda", hombre, si está bien, de chapuza nada.
Y sobre todo me alegro de que lo hayas solucionado solo, pegándose con el problema es cuando se aprende. Las consultas hay que hacerlas después de pegarse con ello, como tú has hecho, que aún has hecho más porque has encontrado la solución
Únicamente decir que la variable $aa no te hace falta porque no haces nada con ella, pero no es muy importante.
¿Por qué llamas _fall a la función, que no se cae a ningún sitio, hombre
Una cosa, cuando haces #include <LeeNumero.au3> es porque LeeNumero.au3 lo has puesto con los includes de AutoIt ¿no?
Si lo quieres así perfecto, pero por si no lo sabes te informo de que puedes tener el au3 donde quieras, entonces si pones comillas en vez de menor-mayor pones el camino donde está:
#include "c:\programas\includes\LeeNumero.au3"
en realidad es relativo a tu programa, así que si está junto a él puedes hacer:
#include "LeeNumero.au3"
Por supuesto una vez has hecho el exe no tienes que pasar el au3, ya está incluido dentro.
Y nada de "mierda", hombre, si está bien, de chapuza nada.
Y sobre todo me alegro de que lo hayas solucionado solo, pegándose con el problema es cuando se aprende. Las consultas hay que hacerlas después de pegarse con ello, como tú has hecho, que aún has hecho más porque has encontrado la solución
Únicamente decir que la variable $aa no te hace falta porque no haces nada con ella, pero no es muy importante.
¿Por qué llamas _fall a la función, que no se cae a ningún sitio, hombre
Una cosa, cuando haces #include <LeeNumero.au3> es porque LeeNumero.au3 lo has puesto con los includes de AutoIt ¿no?
Si lo quieres así perfecto, pero por si no lo sabes te informo de que puedes tener el au3 donde quieras, entonces si pones comillas en vez de menor-mayor pones el camino donde está:
#include "c:\programas\includes\LeeNumero.au3"
en realidad es relativo a tu programa, así que si está junto a él puedes hacer:
#include "LeeNumero.au3"
Por supuesto una vez has hecho el exe no tienes que pasar el au3, ya está incluido dentro.
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Re: Lee Número
Amigo ximorro... tengo la gigantesca duda... donde pongo los números para que me haga la transformación... no se donde poner los numeros...tal vez es una estupides básica pero necesito ayuda plisssss
- Ximorro
- Profesional del Autoit
- Mensajes: 1500
- Registrado: 10 Jul 2009, 12:35
- Ubicación: Castellón, España
Re: Lee Número
Hola kotoku, piensa que lo que he hecho es una rutina para programadores, como si fuera una udf, si así te entiendes mejor.
Mira el ejemplo "LeeNumeroEjemplo.au3" para ver varias posibilidades de cómo usarla.
Tienes que hacer un programa que use mis rutinas. Por ejemplo uno básico que saque el texto del número 3453 en un MsgBox sería:
#include "LeeNumero.au3"
MsgBox(0, 3453 , _LeeNumero(3453))
¡Y ya está!
Es decir, le pasas el número a la función _LeeNumero(). En realidad lo que hay que pasar es el texto del número, o sea, sería más correcto:
_LeeNumero("3453")
Con números pequeños como este da lo mismo, pero con números grandes se saldría del rango de AutoIT para números enteros y dejaría de funcionar.
Te recomiendo pasar siempre textos para no tener problemas.
Ya me dices.
Además de mis ejemplos en "LeeNumeroEjemplo.au3" en los comentarios tienes un ejemplo de Charlie19 que lee el número de una caja de texto en un GUI.
Mira el ejemplo "LeeNumeroEjemplo.au3" para ver varias posibilidades de cómo usarla.
Tienes que hacer un programa que use mis rutinas. Por ejemplo uno básico que saque el texto del número 3453 en un MsgBox sería:
#include "LeeNumero.au3"
MsgBox(0, 3453 , _LeeNumero(3453))
¡Y ya está!
Es decir, le pasas el número a la función _LeeNumero(). En realidad lo que hay que pasar es el texto del número, o sea, sería más correcto:
_LeeNumero("3453")
Con números pequeños como este da lo mismo, pero con números grandes se saldría del rango de AutoIT para números enteros y dejaría de funcionar.
Te recomiendo pasar siempre textos para no tener problemas.
Ya me dices.
Además de mis ejemplos en "LeeNumeroEjemplo.au3" en los comentarios tienes un ejemplo de Charlie19 que lee el número de una caja de texto en un GUI.
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Re: Lee Número
Gracias por responder... soy nuevo en esto... voy a realizar lo que me indicas... Gracias.