Foros del Web » Programando para Internet » Python »

Menú en python

Estas en el tema de Menú en python en el foro de Python en Foros del Web. Hola a todos. Esta misma tarde me he puesto a programar python. Hace una semana más o menos, estaba aburrido y me dio por hacer ...
  #1 (permalink)  
Antiguo 18/09/2008, 16:48
 
Fecha de Ingreso: agosto-2008
Mensajes: 240
Antigüedad: 16 años, 2 meses
Puntos: 6
Menú en python

Hola a todos.

Esta misma tarde me he puesto a programar python. Hace una semana más o menos, estaba aburrido y me dio por hacer un instalador para Linux en Shell Scripts (es una tonteria, pero al menos estube entretenido) y busque en google la forma de ponerle un menu y anclar cada opcion del menu a su correspondiente accion.
Ahora estoy intentando hacerlo en Python, pero no consigo hacer el menu ni anclar las opciones a una funcion para colocar los comandos (que logicamente he de ponerlos en Shell Scripts, pero eso si se como se hace) Podrian darme alguna solucion? Estoy bastante ilusionado con este tema.

Gracias de antemano.

La cosa me quedo más o menos asi en Shell Script
Código bash:
Ver original
  1. #/bin/sh
  2. clear
  3. #------------------------ Menu -------------------------------------
  4. echo "Instalador Gnu/Linux de gonzo"
  5. echo "========="
  6. echo "Seleeciona la opción deseada"
  7. echo "1.- Actualizar repositorios."
  8. echo "2.- Actualizar la distribucion."
  9. echo "3.- Instalar una aplicación."
  10. echo "4.- Desinstalar una aplicación."
  11. echo "5.- Salir."
  12.  
  13. #------------------------- Fin menu ------------------------------------
  14.  
  15. read opcion
  16. case $opcion in
  17.  
  18. #------------------ Inicio opcion 1 -------------------
  19.  
  20. 1)
  21. echo "Bienvenido al actualizador de repositorios"
  22. echo "Se actualizaran los repositorios a continuación, ¿Desea continuar?[S/n]"
  23. read resp
  24. if test $resp = s
  25. then
  26. sudo apt-get -qq update && echo "Actualización de repositorios..."&& sleep 1 && echo "[ok]" || echo "[fail]"  
  27.  
  28. #------- Fin actualizacion de repositorios -----------------------
  29.  
  30. echo "¿Desea hacer otra operacion? [S/n]"
  31. read new
  32.     if test $new = s
  33.     then
  34.     sh instalador.sh
  35.     else
  36.     echo "Saliendo del instalador.... [ok]"
  37.     fi
  38. else
  39. echo "Actualizacion cancelada por el usuario..."
  40. fi
  41. ;;
  42.  
  43. #---------------------- Fin opcion 1 --------------------------
  44. #---------------------- Inicio opcion 2 -------------------------
  45.  
  46. 2)
  47. echo "Bienvenido al actualizador de tu distribucion Gnu/Linux"
  48. echo "Es recomendable actualizar tus repositorios ahora, ¿quieres hacerlo? Tu distribución se actualizara igualmente [S/n]"
  49. read ans
  50. if test $ans = s
  51. then
  52. sudo apt-get -qq update
  53. sudo apt-get -qq -y dist-upgrade && echo "Distribucion actualizada...."
  54.     echo "¿Desea hacer otra operacion? [S/n]"
  55.     read nuv
  56.         if test $nuv = s
  57.         then
  58.         sh instalador.sh
  59.         else
  60.         echo "Saliendo del instalador.... [ok]"
  61.         fi
  62. else
  63. echo "No se actualizaran los repositorios, quieres empezar con la actualizacion de tu distribucion?[S/n]"
  64. read actual
  65.     if test $actual = s
  66.     then
  67.     sudo apt-get -qq -y dist-upgrade && echo "Distribucion actualizada...."
  68.     echo "¿Desea hacer otra operacion? [S/n]"
  69.     read nuev
  70.         if test $nuev = s
  71.         then
  72.         sh instalador.sh
  73.         else
  74.         echo "Saliendo del instalador...."&& echo "[ok]"|| echo "Operacion errónea"
  75.         fi
  76.     else
  77.     echo "Saliendo del instalador.... [ok]"
  78.     fi
  79. fi
  80. ;;
  81.  
  82. #-------------- Fin opcion 2 ----------------------
  83. #-------------- Inicio opcion 3 ---------------------
  84. 3)
  85. echo "Bienvenido al instalador de aplicaciones"
  86. echo "Introduce el nombre del programa a instalar:"
  87. read prog
  88. echo "¿Seguro que quieres instalar: "$prog"? [S/n]"
  89. read ans
  90. if test $ans = s
  91. then
  92. sudo apt-get install -y $prog && echo "Instalación completada con éxito"|| echo "Instalacion errónea o innecesaria"
  93.     echo "¿Desea hacer otra operacion? [S/n]"
  94.     read nov
  95.         if test $nov = s
  96.         then
  97.         sh instalador.sh
  98.         else
  99.         echo "Saliendo del instalador.... [ok]"
  100.         fi
  101. else
  102. echo "Instalacion abortada por el usuario..."
  103. fi
  104. ;;
  105.  
  106. #------------ Fin opcion 3 ------------------
  107. #------------ Inicio opcion 4 -----------------
  108. 4)
  109. echo "Bienvenido al desinstalador de aplicaciones"
  110. echo "Introduce el nombre del programa a desinstalar:"
  111. read progr
  112. echo "¿Seguro que quieres instalar: "$progr"? [S/n]"
  113. read ansr
  114. if test $ansr = s
  115. then
  116. sudo apt-get remove --purge -y $progr && echo "Desinstalación completada con éxito"|| echo "Desinstalacion errónea o innecesaria"
  117.     echo "¿Desea hacer otra operacion? [S/n]"
  118.     read nova
  119.         if test $nova = s
  120.         then
  121.         sh instalador.sh
  122.         else
  123.         echo "Saliendo del instalador.... [ok]"
  124.         fi
  125. else
  126. echo "Desinstalacion abortada por el usuario..."
  127. fi
  128. ;;
  129. #------------ Fin opcion 4 ----------------------
  130. #------------ Inicio opcion 5 ----------------------
  131. 5)
  132. echo "Saliendo del instalador.... [ok]"
  133. ;;
  134. #----------- Fin opcion 5 -------------------------
  135. esac
  136. echo "Gracias por tu confianza"
  137. exit 0

Última edición por gonzo13; 23/09/2008 a las 15:15
  #2 (permalink)  
Antiguo 18/09/2008, 21:24
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Menú en python

Con el código BASH queda clara la intención, pero deberías pegar también tu código Python, para poder detectar los problemas.


Saludos.
  #3 (permalink)  
Antiguo 19/09/2008, 00:56
 
Fecha de Ingreso: agosto-2008
Mensajes: 240
Antigüedad: 16 años, 2 meses
Puntos: 6
Respuesta: Menú en python

Gracias Alvlin, pero el problema es que no se como se hace ese codigo en python.

Puse el codigo BASH para que supierais lo que queria
  #4 (permalink)  
Antiguo 19/09/2008, 07:45
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Menú en python

Entiendo, pero creo que deberías seguir el tutorial, o revisar alguno de los sitios mencionados en las preguntas frecuentes...

En principio puedo comentarte que para mostrar información en la pantalla se usa print, para llamar a comandos hay que importar el módulo os y llamar a os.system:

Código python:
Ver original
  1. import os
  2. os.system("comando")

No hay estructura switch/case, pero sí if-elif-else (aunque el switch se puede emular con un ejemplo como el que está acá)

Para preguntarle al usuario por datos se usan raw_input e input, la diferencia es que raw_input devuelve lo ingresado como una cadena, mientras que input requiere que lo ingresado sea un número.

Con eso debería bastar para empezar a "traducir" tu programa.

Saludos.
  #5 (permalink)  
Antiguo 19/09/2008, 08:24
 
Fecha de Ingreso: agosto-2008
Mensajes: 240
Antigüedad: 16 años, 2 meses
Puntos: 6
Respuesta: Menú en python

Gracias Alvlin. Si que sabia pedir datos por teclado y todo lo demas. De todas formas, gracias por recordarmelo, seguro que a alguien le viene bien. Lo que no sabia era lo del switch-case. Probare con if-elif-else. Pero creo que es algo más complicado.

Ayer lo "solucione" llamando al programa en BASH, pero me dije: "para esto no estoy aprendiendo python. Para hacerlo asi mejor dejar el programa en BASH" Creo que es una autocritica muy buena, no crees? jeje.

De todas formas, muchas gracias. Te ire comentando que tal me va.
  #6 (permalink)  
Antiguo 20/09/2008, 05:01
 
Fecha de Ingreso: agosto-2008
Mensajes: 240
Antigüedad: 16 años, 2 meses
Puntos: 6
Respuesta: Menú en python

He estado creando funciones y demás, porque con el switch no he conseguido hacer nada. Por más que he buscado no he conseguido encontrar una sintaxys clara ni su utilizacion.

He probado a intentar llamar una funcion desde otra, pero no lo he conseguido y creo que eso es lo unico que me hace falta.

Aqui tienes el codigo actual en Python:
Código python:
Ver original
  1. #!bin/env python
  2. import os
  3. so = os.name
  4. if so == "posix":
  5.  comando = "clear"
  6. elif so == "nt":
  7.  comando = "cls"
  8. os.system( comando )
  9. #!------ Declaracion de funciones -------
  10. def menu(opc, complaint='Tienes que elegir alguna opcion del menu'):
  11.     opc=raw_input(opc)
  12.     for opc in('repositorios', 'repositorio'): actualizarRep
  13. #!--------------------------@--------------------------------
  14. def actualizarRep(ans, complaint='tienes que elegir si o no!'):
  15.     print 'Bienvenido al actualizador, quieres actualizar?[S/n]    eleccion: '
  16.     ans= raw_input(ans)
  17.     if ans in ('s', 'si', 'SI', 'S', 'sip'): os.system('sudo apt-get update')
  18.     if ans in ('n'): return 1
  19. #!--------------------------@---------------------------------
  20. def salida(prompt, retries=4, complaint='Si o no, por favor!'):
  21.     while 1:
  22.         ok = raw_input(prompt)
  23.         if ok in ('s', 'si', 'SI', 'S', 'sip'): return 1
  24.         if ok in ('n', 'no', 'nop', 'nope'): os.system('python salir.py')
  25.         retries = retries - 1
  26.         if retries < 0: raise IOError, 'refusenik user'
  27.         print complaint
  28. #!--------------------------@-----------------------------------
  29. #!------ Fin declaracion de funciones ----------
  30.  
  31. print "Instalador GNU/Linux de gonzo"
  32. print "======"
  33. print "Escoge una opcion por favor"
  34. print "Actualizar repositorios   [repositorios]"
  35. print "Actualizar distribucion   [distribucion]"
  36. #!------- Llamada a la funcion menu -----------
  37. menu ('Eleccion: ')
  38. #!------- Llamada a la funcion salida -----------
  39. salida('Quieres salir?[S/n]     eleccion: ')
El caso es que desde la funcion menu, no consigo hacer que llame a la funcion actualizarRep una vez que pongo su opcion correspondiente (hasta ahora las opciones son 'repositorio' o 'repositorios'). Lo que consigo cuando escribo en la funcion menu es que me pase directamente a la funcion salida.

El resto de opciones tienen tambien su funcion, es logico, pero no quiero crear más hasta no solucionar este problema para no ampliar mas el codigo teniendo errores previos.
Supongo que habra una formas más facil de hacer esto, pero no se cual, a ver si me podeis ayudar con una forma nueva o con esta. Creo que lo unico que necesito es llamar a la funcion actualizarRep desde la funcion menu.

Muchas gracias de nuevo,
Gonzo

Última edición por AlvaroG; 20/09/2008 a las 08:08 Razón: Usar las etiquetas "highlight" en vez de "code"
  #7 (permalink)  
Antiguo 20/09/2008, 08:14
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Menú en python

gonzo, edité tu mensaje para que el código recibiera resaltado

En la línea 12, no estás haciendo correctamente la llamada a actualizarRep, dado que no le estás pasando los parámetros que necesita.
Cambiá esa línea por

Código python:
Ver original
  1. for opc in('repositorios', 'repositorio'): actualizarRep(opc)

Tenés además un error de lógica: le estás pasando a actualizarRep() un parámetro ans al que luego le das un valor dentro de la función. Por lo que en realidad creo que lo más correcto sería

Código python:
Ver original
  1. for opc in('repositorios', 'repositorio'): actualizarRep()
  2. ...
  3. def actualizarRep(complaint='tienes que elegir si o no!'):


Con estos cambios funciona bastante bien
Ahora, ¿cuál es la intención de salir.py? ¿por qué lo llamás como archivo externo?


Saludos.
  #8 (permalink)  
Antiguo 20/09/2008, 08:32
 
Fecha de Ingreso: agosto-2008
Mensajes: 240
Antigüedad: 16 años, 2 meses
Puntos: 6
Respuesta: Menú en python

gracias Alvlin, pero hay cosas que no termino de entender (lo del error de logica. Tienes razon seguro, porque yo recien llevo dos dias con python y creo que estoy pidiendo hacer más de lo que se me permite con este tiempo, pero siempre me gustaron los retos) Creo que leere tu mensaje 4 o 5 veces mas

Se llama salir.py porque estube probando con él el metodo de salida que tengo. Lo vi en un tutorial y estube probando, es por ello por lo que se llama asi. De todas formas quiero llamarlo easyinstaller.py porque quiero entregarselo a mis familiares que recien se inician en Ubuntu y en Linux y se que los comandos son dificiles al principio. Ademas, me llama mucho la atencion la programacion y lo hago más que nada para saber de que soy capaz.

Es cierto que este programa puede no tener muchas salidas o mucho uso, pero para mi es una gran experiencia y un reto.

Esperando me puedas resolver mis dudas,
Gonzo

PD: no me cansare de agradecerte. Gracias
  #9 (permalink)  
Antiguo 20/09/2008, 09:27
 
Fecha de Ingreso: agosto-2008
Mensajes: 240
Antigüedad: 16 años, 2 meses
Puntos: 6
Respuesta: Menú en python

Despues de varios intentos sin exito, he cambiado un par de cosas y ya funciona. He encontrado un pequeño bug sin importancia pero que me gustaria corregir y es que cuando digo que si o que no a actualizar los repositorios, no escribe en la misma linea que la pregunta y eso si lo hace en el resto de entradas de teclado.

para que me funcione he dejado esa parte asi (no se hacer que salgo con colores, lo siento)
Código python:
Ver original
  1. for opc in('repositorios', 'repositorio'): actualizarRep()
  2. #!--------------------------@--------------------------------
  3. def actualizarRep(complaint='tienes que elegir si o no!'):
  4.     print 'Bienvenido al actualizador, quieres actualizar?[S/n] eleccion: '
  5.     ans= raw_input()
  6.     if ans in ('s', 'si', 'SI', 'S', 'sip'): os.system('sudo apt-get update')
  7.     if ans in ('n', 'no'): return 1
Asi, funciona perfectamente, salvo ese pequeño detalle.

Ahora tengo otro dilema. Al actualizar, me devuelve la pregunta de si quiero actualizar de nuevo y me gustaria que me diera la funcion salida (si quiero salir o no para que en el caso de decirle que no, me de la opcion de poder hacer otra cosa) pero no se como poner más ordenes dentro de ese primer if (el del caso afirmativo) ni de ningun otro.

Gracias de nuevo,
Gonzo

Última edición por gonzo13; 23/09/2008 a las 08:15
  #10 (permalink)  
Antiguo 20/09/2008, 09:34
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
De acuerdo Respuesta: Menú en python

Para las condiciones con varios comandos:
Código python:
Ver original
  1. if condicion:
  2.     #Un comando
  3.     #Otro comando
  4. else:
  5.     #Un comando
  6.     #Otro comando
Para que aparezca en la misma línea, es raro que no lo haga, aunque tal vez ya no quepa en la consola .

Y solo como sugerencia, en vez de comparar con s y con S, o con si y SI puedes usar el método lower() de la cadena y comparar solo con minúsculas.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #11 (permalink)  
Antiguo 20/09/2008, 10:09
 
Fecha de Ingreso: agosto-2008
Mensajes: 240
Antigüedad: 16 años, 2 meses
Puntos: 6
Respuesta: Menú en python

Gracias David, pero no consigo inyectar tu sintaxis a mi programa. Podrias explicarme como?

Gonzo
  #12 (permalink)  
Antiguo 20/09/2008, 14:06
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
De acuerdo Respuesta: Menú en python

¿Podrías poner cómo lo intentaste?. Así te ayudo a corregirlo.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #13 (permalink)  
Antiguo 21/09/2008, 02:07
 
Fecha de Ingreso: agosto-2008
Mensajes: 240
Antigüedad: 16 años, 2 meses
Puntos: 6
Respuesta: Menú en python

De nuevo gracias. Aqui tienes el codigo de esa funcion. La funcion salida esta definida tambien y operativa (funciona) en otra parte del codigo en el que se hace referencia a ella directamente.

Código python:
Ver original
  1. def actualizarRep(complaint='tienes que elegir si o no!'):
  2.     print 'Bienvenido al actualizador'
  3.     print 'Quieres actualizar tus repositorios?[S/n]  eleccion: '
  4.     ans= raw_input()
  5.     if ans in ('s', 'si', 'SI', 'S', 'sip'):
  6.         os.system('sudo apt-get update')
  7.         salida()
  8.     else ans in ('n', 'no'): salida()
  9.     retries = retries - 1
  10.         if retries < 0: raise IOError, 'refusenik user'
  11.         print complaint

Muchas gracias,
Gonzo

Última edición por gonzo13; 23/09/2008 a las 08:05
  #14 (permalink)  
Antiguo 22/09/2008, 09:37
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Exclamación Respuesta: Menú en python

Es que si quieres poner otra condición cuando la primera sea falsa en vez de else debe ser elif.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #15 (permalink)  
Antiguo 22/09/2008, 10:14
 
Fecha de Ingreso: agosto-2008
Mensajes: 240
Antigüedad: 16 años, 2 meses
Puntos: 6
Respuesta: Menú en python

Gracias, pero aun poniendo elif me da error.

Podrias escribir tu esa parte de codigo para ver la diferencia con el mio? Gracias
  #16 (permalink)  
Antiguo 22/09/2008, 10:33
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Menú en python

Parece que tenés un error de sangrado en las líneas 10 y 11: el "if" tiene más sangría que la línea que lo precede, sin que haya un bloque que lo justifique.

Esta clase de detalles son detectadas por python como errores.


Saludos.
  #17 (permalink)  
Antiguo 23/09/2008, 08:12
 
Fecha de Ingreso: agosto-2008
Mensajes: 240
Antigüedad: 16 años, 2 meses
Puntos: 6
Respuesta: Menú en python

Tienes razon alvlin, tenia un error de sangrado pero aun así no lo resolvi.

Lo he cambiado practicamente entero. Creo que es más lógico que si no deseas usar la opcion a la que has entrado, te devuelva al programa (al menu me refiero) y desde el propio menu tengas una opcion para salir.

Ha quedado asi por ahora:
Código python:
Ver original
  1. def actualizarRep():
  2.     print 'Bienvenido al actualizador'
  3.     print 'Quieres actualizar tus repositorios?[S/n] eleccion: '
  4.     ans= raw_input()
  5.     if ans in ('s', 'si', 'SI', 'S', 'sip'):
  6.         os.system('sudo apt-get update')
  7.         salida('Quieres salir?[S/n]     eleccion: ')
  8.     elif ans in ('n', 'no'):
  9.         os.system('python easyinstaller.py')

Creo que es bastante más coherente. A parte de que funciona perfectamente. jeje
El resto de opciones serian con la misma estructuras verdad? salvo el hecho de que tendria que cambiar el comando que se utilizaria en cada opcion.

Tengo una duda más. Quiero recoger el nombre del programa a instalar y a desinstalar, como tenia en BASH, e incluirlo en el comando BASH, pero no se como hacer eso en python.

Gracias, y perdon por desvirtuar el tema un poco.
Gonzo
  #18 (permalink)  
Antiguo 23/09/2008, 10:44
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
De acuerdo Respuesta: Menú en python

Puedes hacer otro raw_input() para recoger el nombre del programa.

Solo como sugerencia:
Código python:
Ver original
  1. os.system('python easyinstaller.py')
Para esto tal vez sería mejor usar un import u otra opción que creo es aún mejor sería hacer un bucle while en el menú principal para que vuelva a él.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #19 (permalink)  
Antiguo 23/09/2008, 12:05
 
Fecha de Ingreso: agosto-2008
Mensajes: 240
Antigüedad: 16 años, 2 meses
Puntos: 6
Respuesta: Menú en python

Gracias David. Lo del bucle me llama la atencion, pero ni idea de como montarlo.
En cuanto al import, supongo que seria algo asi, no?: import easyinstaller.py

Prefiero hacer el bucle, parece más complejo y pienso que asi aprendere más. Me echais una mano? Gracias.

Sigo sin entender lo del programa. Necesito hacer que el nombre que entre por teclado, se añada a un comando de BASH para que sea instalado el programa de dicho nombre.

Gracias,
Gonzo
  #20 (permalink)  
Antiguo 23/09/2008, 13:15
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Menú en python

Básicamente un bucle while:
http://www.google.com/search?q=while...restrict&cad=7

Un ejemplo práctico está en el jueguito que hicimos en la competencia entre programadores, en el código que puse yo el menú principal era un bucle:
http://www.forosdelweb.com/2485085-post21.html
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #21 (permalink)  
Antiguo 23/09/2008, 13:39
 
Fecha de Ingreso: agosto-2008
Mensajes: 240
Antigüedad: 16 años, 2 meses
Puntos: 6
Respuesta: Menú en python

el bucle se me escapa de las manos, al igual que mi otro problema. No lo consigo...
  #22 (permalink)  
Antiguo 23/09/2008, 14:14
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Menú en python

A ver, explico, un bucle es un código que se repite, por lo que supongo tienes un menú principal, ese menú principal lo puedes poner en una función, y colocarlo dentro del bucle while. Por ejemplo:
Código python:
Ver original
  1. salir = True
  2. while salir:
  3.    salir = funcionmenu()
Con eso se repetirá funcionmenu() hasta que devuelvas False, por lo que puedes poner en ese menú una opción de salir y cuando se seleccione esa opción devolver False.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #23 (permalink)  
Antiguo 23/09/2008, 15:14
 
Fecha de Ingreso: agosto-2008
Mensajes: 240
Antigüedad: 16 años, 2 meses
Puntos: 6
Respuesta: Menú en python

Gracias por la ayuda David. Ya mañana lo pruebo y me como la cabeza para acoplarlo al programa

He de levantarme temprano para ir al instituto y ya es un poco tarde para mi. En menos de 8 horas volvere a estar en planta.

Mañana te cuento como me va y seguire preguntando dudas. Esto es un no parar, pero de alguna forma hay que aprender.

Muchas gracias y hasta mañana.
Gonzo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:58.