elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20 21 22 23 24
111  Programación / Scripting / Re: [Código-Python]Gestor de pago de cuentas - JaAViEr|0x5d en: 21 Mayo 2012, 01:18 am
Un TAD Fecha xD
Qué es un TAD ?
112  Programación / Scripting / Re: [Código-Python]Gestor de pago de cuentas - JaAViEr|0x5d en: 20 Mayo 2012, 21:04 pm
No he tenido tiempo de ejecutarlo, pero según el source, únicamente se permite ingresar años iguales o superiores a 2012, así que, ¿que pasa si tengo una cuenta a deber desde 1999? xD.

Bueno es :), Un saludo, Runex.
Jajaja me la batallé como 3 horas con eso de las fechas, se supone que son cuentas tipo: Cuenta de la Luz
Para organizar los pagos y cosas en un futuro, mensualmente.


Saludos.
113  Programación / Scripting / [Código-Python]Gestor de pago de cuentas - JaAViEr|0x5d en: 20 Mayo 2012, 09:43 am
Hola, buen día a todos !

Hace un rato que no subo nada de nada  , últimamente ando programando cosas, pero nada subo a la red :'( , así que programé un "Gestor de pagos de cuentas".

Tiene sencillas opciones:

1.- Ver cuentas.
2.- Agregar/Editar una cuenta.
3.- Informar pago de cuenta.
4.- Ver cuentas pagadas.
5.- Calcular cuanto he pagado en cuentas.
6.- Eliminar una cuenta pagada.
7.- Salir.


Pasaré a explicar algunas:

La primera opción nos permitirá visualizar las cuentas que hayamos ingresado anteriormente con la opción 2.

La segunda opción nos permitirá agregar alguna cuenta que tengamos pendientes en pagar. Nos pedirá el nombre de la cuenta, cuanto es el monto a cancelar y la fecha en la que debemos pagar la cuenta. El programa cuando se inicia verifica todas las cuentas y nos avisa que cuenta vence el día en que se ejecute.

La tercera opción nos dará la posibilidad de informar que ya hemos pagado una cuenta pendiente. Al entrar en esta opción nos mostrará las cuentas que no se han pagado, nos pedirá el nombre de la cuenta que vamos a señalar que está pagada, luego preguntará ¿Pagada?(s/n) , luego nos dirá si queremos conservar el registro de que esa cuenta fue pagada, en caso de ser "s" luego tendremos acceso a esos datos desde el menú, de lo contrario se perderán.

La opción cuatro solo nos mostrará en pantalla las cuentas que hemos pagado.

Opción 5 hará un calculo total de cuanto dinero hemos utilizado en el pago de nuestras cuentas, recuerda que si en la opción 3 no señalaste guardar un registro aquí no se sumará dicho gasto.

Mientras que la opción 6 nos mostrará por pantalla las cuentas que ya hemos pagado, dándonos la posibilidad de eliminar uno de los registros.


Sin más preámbulos , el código:

Código
  1. #-*- coding: utf-8 -*-
  2. import datetime, re, os, sys
  3.  
  4. def clear_screen():
  5. os.system("cls") if(os.name=='nt') else os.system("clear")
  6.  
  7. if not os.path.isdir("cuentas"):
  8. respuesta = raw_input("""
  9. No están las carpetas necesarias para el correcto
  10. Funcionamiento del programa
  11.           ¿Desea crerlas? (s/n): """).lower()
  12. if respuesta=="s":
  13. try:
  14. os.mkdir("cuentas")
  15. os.mkdir("cuentas_pagadas")
  16. raw_input("Se crearon los archivos necesarios, presiona una enter para ir al programa.")
  17. except:
  18. print "Error al crear los archivos necesarios."
  19. sys.exit(1)
  20. else:
  21. print "No se instalará el programa."
  22. sys.exit(1)
  23. else:
  24. pass
  25. separar_fecha = str(datetime.datetime.now()).split(" ")[0]
  26. parsear_fecha = separar_fecha.split("-")
  27. fecha_normal = " %s/%s/%s"%(parsear_fecha[2], parsear_fecha[1], parsear_fecha[0])
  28. clear_screen()
  29. class cuentas:
  30. def extraer_cuentas(self):
  31. return os.listdir("cuentas/")
  32.  
  33. def verificar_fechas(self):
  34. try:
  35. for cuenta in self.extraer_cuentas():
  36. ver_pagos = open("cuentas/%s"%cuenta,"r")
  37. for dato, valor in re.findall("(.*):(.*)",ver_pagos.read()):
  38. if "Vence" in dato:
  39. if valor==fecha_normal:
  40. print """
  41. ¡ALERTA!
  42. La cuenta de %s vence hoy!
  43. """%cuenta.capitalize()
  44. ver_pagos.close()
  45. except:
  46. print "No se encontraron cuentas"
  47.  
  48. def __init__(self):
  49. self.verificar_fechas()
  50.  
  51. def ver_cuentas(self):
  52. global todos_lospagos
  53. todos_lospagos = []
  54. try:
  55. for ver_cuenta in self.extraer_cuentas():
  56. ver_pagos = open("cuentas/%s"%ver_cuenta,"r")
  57. todos_lospagos.append(ver_pagos.read()+"\n----")
  58. ver_pagos.close()
  59. return True
  60. except:
  61. return False
  62.  
  63. def agregar_pago(self, tipo, valor, fecha):
  64. clear_screen()
  65. try:
  66. escribir_nuevo = open("cuentas/%s"%tipo,"w")
  67. escribir_nuevo.write("""Tipo de cuenta  : %s
  68. Monto a cancelar: %s
  69. Vence el día    : %s
  70. Estado          : No pagada"""%(tipo, valor, fecha))
  71. escribir_nuevo.close()
  72. return True
  73. except:
  74. return False
  75.  
  76. def cuenta_pagada(self, cuenta, estado, conservar):
  77. if estado == "s":
  78. if conservar == "s":
  79. try:
  80. cuenta_r = open("cuentas/%s"%cuenta,"r")
  81. cuenta_w = open("cuentas_pagadas/%s"%cuenta,"w")
  82. cuenta_w.write(cuenta_r.read().replace("No pagada", "Pagada"))
  83. cuenta_w.close()
  84. cuenta_r.close()
  85. os.remove("cuentas/%s"%cuenta)
  86. return True
  87. except:
  88. return False
  89. else:
  90. try:
  91. os.remove("cuentas/%s"%cuenta)
  92. return True
  93. except:
  94. return False
  95. else:
  96. return False
  97.  
  98. def dinero_encuentas(self):
  99. try:
  100. global suma
  101. suma = 0
  102. for h in os.listdir("cuentas_pagadas"):
  103. for valor in re.findall("Monto a cancelar: (.*)",open("cuentas_pagadas/%s"%h,"r").read()):
  104. suma+=int(valor)
  105. return True
  106. except:
  107. return False
  108.  
  109. pago = cuentas()
  110.  
  111. while True:
  112. print """
  113. ¡ Bienvenido al gestor de pago de cuentas !
  114. La fecha de hoy es%s"""%fecha_normal
  115. try:
  116. opcion_principal = input("""
  117. 1.- Ver cuentas.
  118. 2.- Agregar/Editar una cuenta.
  119. 3.- Informar pago de cuenta.
  120. 4.- Ver cuentas pagadas.
  121. 5.- Calcular cuanto he pagado en cuentas.
  122. 6.- Eliminar una cuenta pagada.
  123. 7.- Salir.
  124.  
  125. Ingresa una opción: """)
  126. if opcion_principal == 7:
  127. break
  128. elif opcion_principal == 1:
  129. clear_screen()
  130. if len(os.listdir("cuentas"))>0:
  131. if pago.ver_cuentas():
  132. pago.verificar_fechas()
  133. print "Cuentas registradas:"
  134. for out in todos_lospagos:
  135. print out
  136. else:
  137. print "Error inesperado."
  138. else:
  139. print "No hay cuentas registradas."
  140. elif opcion_principal == 2:
  141. clear_screen()
  142. print "Si la cuenta ya existe, será reescrita con nuevos datos."
  143. try:
  144. print "Rellene los siguientes campos por favor. Si desea volver al menú presione \"q\" y ENTER."
  145. tipo_c = raw_input("Nombre de la cuenta: ").capitalize()
  146. if tipo_c != "Q":
  147. valor_c = raw_input("¿Cuanto debe pagar?: ")
  148. fecha_pago = raw_input("Fecha de pago(dd/mm/aa):")
  149. v_d = fecha_pago.split("/")
  150. v_f = fecha_normal.split("/")
  151. if len(v_d[0])==2 and len(v_d[1])==2 and len(v_d[2])==4:
  152. if v_d[2]>v_f[2] or v_d[2]==v_f[2] and not v_d[1]<=v_f[1]:
  153. if v_d[1] and v_f[1]:
  154. if pago.agregar_pago(tipo_c, valor_c, fecha_pago):
  155. print "Se agregó la cuenta correctamente."
  156. else:
  157. print "No se pudo agregar la cuenta, intentalo de nuevo."
  158. elif v_d[1]==v_f[1] and v_d[0]>=v_f[0]:
  159. if pago.agregar_pago(tipo_c, valor_c, fecha_pago):
  160. print "Se agregó la cuenta correctamente."
  161. else:
  162. print "No se pudo agregar la cuenta, intentalo de nuevo."
  163. else:
  164. print "La fecha no es válida o ya pasó..."
  165.  
  166. else:
  167. print "Fecha mal ingresada."
  168. else:
  169. clear_screen()
  170. pass
  171. except:
  172. print "Ingrese datos válidos."
  173.  
  174. elif opcion_principal == 3:
  175. clear_screen()
  176. if len(os.listdir("cuentas"))>0:
  177. print "Si usted decide no conservar registro de la cuenta, esta\nno será considerada en la opción 5"
  178. print "\nCuentas aún no pagadas:\n------"
  179. print "\n".join(os.listdir("cuentas"))
  180. cuenta = raw_input("------\nCuenta:").capitalize()
  181. estado = raw_input("¿Pagada?(s/n): ").lower()
  182. conservar = raw_input("¿Conservar registro?(s/n): ").lower()
  183. if pago.cuenta_pagada(cuenta, estado, conservar):
  184. print "Realizado con éxito"
  185. else:
  186. print "Ocurrió un problema."
  187. else:
  188. print "No hay cuentas registradas."
  189. elif opcion_principal == 4:
  190. clear_screen()
  191. if len(os.listdir("cuentas_pagadas"))>0:
  192. try:
  193. for h in os.listdir("cuentas_pagadas"):
  194. print open("cuentas_pagadas/%s"%h,"r").read()
  195. print "----"
  196. except:
  197. print "No se pueden ver las cuentas pagadas."
  198. else:
  199. print "No has pagado ni una cuenta aún."
  200. elif opcion_principal == 5:
  201. clear_screen()
  202. if len(os.listdir("cuentas_pagadas"))>0:
  203. if pago.dinero_encuentas():
  204. print "El dinero que has pagado en cuentas es de:",suma
  205. else:
  206. print "No has pagado ni una cuenta aún."
  207. elif opcion_principal == 6:
  208. clear_screen()
  209. cuentas_totales = os.listdir("cuentas_pagadas")
  210. if len(cuentas_totales)>0:
  211. print "Lista de las cuentas ya canceladas:"
  212. for listar_cuentas in cuentas_totales:
  213. print "* "+listar_cuentas
  214. eliminar_cuenta = raw_input("¿Que cuenta ya cancelada desea eliminar?: ").capitalize()
  215. if eliminar_cuenta in cuentas_totales:
  216. try:
  217. clear_screen()
  218. os.remove("cuentas_pagadas/%s"%eliminar_cuenta)
  219. print "Cuenta eliminada Correctamente"
  220. except:
  221. clear_screen()
  222. print "No se pudo eliminar la cuenta."
  223. else:
  224. clear_screen()
  225. print "No existe la cuenta solicitada."
  226. else:
  227. print "No hay cuentas pagadas."
  228. except:
  229. print "La opción ingresada no es un número."
  230.  

Fuente: http://rootcodes.com/pythongestor-de-pago-de-cuentas/

Saludos, Javier.
114  Programación / Scripting / Re: IDE para Python en: 16 Mayo 2012, 18:12 pm
Yo uso Geany y anda de maravillas, otro que tiene soporte Python es Anjuta
Al menos en mi Debian me da la posibilidad de usar Python en su IDE

Saludos, Javier.
115  Programación / Scripting / Re: [Reto Bash] Crackme 1 en: 11 Mayo 2012, 00:04 am
El primer crackme que inicia los retos Bash  ;-)
Es muy simple y aquí teneis las indicaciones:


Nombre:      Crackme Rune
Dificultad:     3/10
Objetivo:      Loguearse.
Indicaciones: Ninguna, es muy simple :)
Pistas:    Al final del code, está vuestra pista :)

Código
  1. IyEvYmluL2Jhc2gKZWNobyAnSW5zZXJ0ZSBlbCB1c3VhcmlvJwpyZWFkIEEKeDU9NjUKeDY9NDUK
  2. eDc9MzQKcD0keDYkeDckeDUKaWYgWyAkQSAhPSAkcCBdCnRoZW4KZWNobyAnTWFsJwpzbGVlcCAz
  3. cwplbHNlCmVjaG8gJ1VzdWFyaW8gQ29ycmVjdG8nCmVjaG8gJ0EgY29udGludWFjaW9uIGluc2Vy
  4. dGUgbGEgY29udHJhc2XDsWEnCngxPTEKeDI9NAp4Mz01Ngp4ND0yMwp4PSR4MSR4MyR4MiR4NApy
  5. ZWFkIHBhc3MKaWYgWyAkcGFzcyA9ICR4IF0gCnRoZW4KZWNobyAnQ29udHJhc2XDsWEgY29ycmVj
  6. dGEsIGFjY2VkaWVuZG8gYWwgcGFuZWwnCnNsZWVwIDRzCmV4aXQgMAplbHNlCmVjaG8gJ0NvbnRy
  7. YXNlw7FhIGluY29ycmVjdGEnCnNsZWVwIDRzCmV4aXQKZmkKZmkKCg==

Asumo que es base64 , podrías haber publicado solo el código sin el base64. . . Cuando llegue a casa lo miraré ya decodificado xd
116  Foros Generales / Dudas Generales / Re: bot para radio en: 5 Mayo 2012, 08:53 am
es eso seguramente savia k era algo de soket y conexion y noseque rollos mas

joer si tiene por hay el script o cualquer cosa y me ayudarias  me harias un favor inpresionante
Aprende a enviar sockets por PHP y enviar cabeceras HTTP :D
117  Programación / Desarrollo Web / Re: Problema panel de logueo en: 4 Mayo 2012, 18:20 pm
Ahora que miro bien, "and" debes cambiarlo po &&
118  Programación / Scripting / Re: Colores bash en python en: 4 Mayo 2012, 17:31 pm
Pues solo se me ocurre bajo Linux, usando :
Código
  1. variable = raw_input("Mensaje : ")
  2. print "\33[31m"+variable+"\033[0m"
  3.  

¡ Saludos !
119  Programación / Desarrollo Web / Re: Problema panel de logueo en: 4 Mayo 2012, 17:28 pm
Pues el error más lógico que veo es en los condicionales...
Código
  1. $reg['nombre']=$usuario and $reg['password']=$password
  2.  
Es con doble "==" ... al menos cuando programo en PHP lo hago así :O

Saludos, Javier
120  Programación / Scripting / Re: [Código-Python]Cliente FTP V2 - JaAViEr | 0x5d en: 4 Mayo 2012, 17:25 pm
Bueno, con raw_input se pueden manejar errores, en cambio con input no. Aunque a partir de la version 3.0 de python, como bien sabe 0x5d, raw_input desaparece i solo queda input que adquiere la capacidad de manejar errores.

Edito: 0x5d Aprovecho para felicitarte por tu trabajo con python.
¡ Muchas Gracias ! aunque mis trabajos no son nada del otro mundo por ahora :c

una pregunta, que diferencia hay entre input y raw_input? Yo siempre he utilizado el segundo.
raw_input() se utiliza para insertar valores alfanuméricos, mientras que el
input() lo utilizamos solo para valores numéricos :D

Eso en las versiones < 3.0 de Python

¡ Saludos, Javier !
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20 21 22 23 24
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines