Lee Número

Autoit Avanzado más complejo con funciones "geek" para cualificarse como "ESPECIALISTA EN AUTOIT". Originales de autor, no copiados. Mín. 100 lineas
Responder
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Lee Número

Mensaje por Ximorro »

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... :smt003
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.
LeeNumeroPant.png
LeeNumeroPant.png (14.78 KiB) Visto 13828 veces
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 517 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)
Avatar de Usuario
Nahuel
Hacker del Foro
Mensajes: 194
Registrado: 27 Jun 2007, 23:32
Ubicación: Argentina
Contactar:

Re: Lee Número

Mensaje por Nahuel »

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.
No soy un hombre de plegarias, pero si estás en el cielo sálvame por favor Superman!
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Lee Número

Mensaje por Chefito »

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 :smt023 . Me estas dejando atras tiiiiiooooo!!!.
Como sigas así me convierte en un novato! :smt005 .

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 ;).
Avatar de Usuario
XPyro
Profesional del Autoit
Mensajes: 542
Registrado: 04 Mar 2007, 10:12
Ubicación: México
Contactar:

Re: Lee Número

Mensaje por XPyro »

Grande amigo, si que es un muy buen Script, mira que cantidad de números :smt005
Imagen
Avatar de Usuario
Nahuel
Hacker del Foro
Mensajes: 194
Registrado: 27 Jun 2007, 23:32
Ubicación: Argentina
Contactar:

Re: Lee Número

Mensaje por Nahuel »

Chefito escribió: Me ha gustado mucho el curro que has hecho
Qué es curro en España? Acá un curro es... como una estafa :P Algo para perjudicar a alguien.. jeje.

Perdón por comentar estupideces :P
No soy un hombre de plegarias, pero si estás en el cielo sálvame por favor Superman!
Avatar de Usuario
gna08
Hacker del Foro
Mensajes: 379
Registrado: 27 Sep 2008, 18:51
Ubicación: Cordoba, Argentina

Re: Lee Número

Mensaje por gna08 »

Nahuel escribió:
Chefito escribió: Me ha gustado mucho el curro que has hecho
Qué es curro en España? Acá un curro es... como una estafa :P Algo para perjudicar a alguien.. jeje.

Perdón por comentar estupideces :P
jajaja, si, aca es otra cosa jaja. segun me dijeron es por ej un trabajo.. algo k traes haciendo entremanos pero no malo :smt017
Un laburo de aca :O jajajaja
Salu2
Aunk no m Buskes, Seguro m enkontras!
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Lee Número

Mensaje por Chefito »

Jajajajaja.
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 ;).
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Lee Número

Mensaje por Ximorro »

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) :smt003
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? :smt026

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. :smt003
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)
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Lee Número

Mensaje por Chefito »

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?
Conocedor de las librerías de win? Digamos que simplemente me defiendo :smt002 .
Respecto a lo del splitter......no te lo vas a creer pero apenas lo he tocado (digamos que apenas he programado nada) :smt005 . Si es que soy un gandul muy graaaanndeeeeee :smt021 . 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 ;).
Avatar de Usuario
Nahuel
Hacker del Foro
Mensajes: 194
Registrado: 27 Jun 2007, 23:32
Ubicación: Argentina
Contactar:

Re: Lee Número

Mensaje por Nahuel »

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!
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Lee Número

Mensaje por Ximorro »

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...
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Charlie19
Aprendiz de Mago
Mensajes: 30
Registrado: 12 Ene 2010, 22:59

Re: Lee Número

Mensaje por Charlie19 »

Hei Ximorro ...
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

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
Sin error no hay esfuerzo, sin esfuerzo no se programa!
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Lee Número

Mensaje por Ximorro »

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 no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
kotoqu
Aprendiz de Mago
Mensajes: 46
Registrado: 11 Oct 2008, 01:40

Re: Lee Número

Mensaje por kotoqu »

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
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Lee Número

Mensaje por Ximorro »

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.
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
kotoqu
Aprendiz de Mago
Mensajes: 46
Registrado: 11 Oct 2008, 01:40

Re: Lee Número

Mensaje por kotoqu »

Gracias por responder... soy nuevo en esto... voy a realizar lo que me indicas... Gracias.
Responder