Cita de: Batchiano en 20 Mayo 2012, 21:09 PMQué es un TAD ?
Un TAD Fecha xD
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: Batchiano en 20 Mayo 2012, 21:09 PMQué es un TAD ?
Un TAD Fecha xD
Cita de: Runex en 20 Mayo 2012, 18:16 PMJajaja me la batallé como 3 horas con eso de las fechas, se supone que son cuentas tipo: Cuenta de la Luz
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.

#-*- coding: utf-8 -*-
import datetime, re, os, sys
def clear_screen():
os.system("cls") if(os.name=='nt') else os.system("clear")
if not os.path.isdir("cuentas"):
respuesta = raw_input("""
No están las carpetas necesarias para el correcto
Funcionamiento del programa
¿Desea crerlas? (s/n): """).lower()
if respuesta=="s":
try:
os.mkdir("cuentas")
os.mkdir("cuentas_pagadas")
raw_input("Se crearon los archivos necesarios, presiona una enter para ir al programa.")
except:
print "Error al crear los archivos necesarios."
sys.exit(1)
else:
print "No se instalará el programa."
sys.exit(1)
else:
pass
separar_fecha = str(datetime.datetime.now()).split(" ")[0]
parsear_fecha = separar_fecha.split("-")
fecha_normal = " %s/%s/%s"%(parsear_fecha[2], parsear_fecha[1], parsear_fecha[0])
clear_screen()
class cuentas:
def extraer_cuentas(self):
return os.listdir("cuentas/")
def verificar_fechas(self):
try:
for cuenta in self.extraer_cuentas():
ver_pagos = open("cuentas/%s"%cuenta,"r")
for dato, valor in re.findall("(.*):(.*)",ver_pagos.read()):
if "Vence" in dato:
if valor==fecha_normal:
print """
¡ALERTA!
La cuenta de %s vence hoy!
"""%cuenta.capitalize()
ver_pagos.close()
except:
print "No se encontraron cuentas"
def __init__(self):
self.verificar_fechas()
def ver_cuentas(self):
global todos_lospagos
todos_lospagos = []
try:
for ver_cuenta in self.extraer_cuentas():
ver_pagos = open("cuentas/%s"%ver_cuenta,"r")
todos_lospagos.append(ver_pagos.read()+"\n----")
ver_pagos.close()
return True
except:
return False
def agregar_pago(self, tipo, valor, fecha):
clear_screen()
try:
escribir_nuevo = open("cuentas/%s"%tipo,"w")
escribir_nuevo.write("""Tipo de cuenta : %s
Monto a cancelar: %s
Vence el día : %s
Estado : No pagada"""%(tipo, valor, fecha))
escribir_nuevo.close()
return True
except:
return False
def cuenta_pagada(self, cuenta, estado, conservar):
if estado == "s":
if conservar == "s":
try:
cuenta_r = open("cuentas/%s"%cuenta,"r")
cuenta_w = open("cuentas_pagadas/%s"%cuenta,"w")
cuenta_w.write(cuenta_r.read().replace("No pagada", "Pagada"))
cuenta_w.close()
cuenta_r.close()
os.remove("cuentas/%s"%cuenta)
return True
except:
return False
else:
try:
os.remove("cuentas/%s"%cuenta)
return True
except:
return False
else:
return False
def dinero_encuentas(self):
try:
global suma
suma = 0
for h in os.listdir("cuentas_pagadas"):
for valor in re.findall("Monto a cancelar: (.*)",open("cuentas_pagadas/%s"%h,"r").read()):
suma+=int(valor)
return True
except:
return False
pago = cuentas()
while True:
print """
¡ Bienvenido al gestor de pago de cuentas !
La fecha de hoy es%s"""%fecha_normal
try:
opcion_principal = input("""
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.
Ingresa una opción: """)
if opcion_principal == 7:
break
elif opcion_principal == 1:
clear_screen()
if len(os.listdir("cuentas"))>0:
if pago.ver_cuentas():
pago.verificar_fechas()
print "Cuentas registradas:"
for out in todos_lospagos:
print out
else:
print "Error inesperado."
else:
print "No hay cuentas registradas."
elif opcion_principal == 2:
clear_screen()
print "Si la cuenta ya existe, será reescrita con nuevos datos."
try:
print "Rellene los siguientes campos por favor. Si desea volver al menú presione \"q\" y ENTER."
tipo_c = raw_input("Nombre de la cuenta: ").capitalize()
if tipo_c != "Q":
valor_c = raw_input("¿Cuanto debe pagar?: ")
fecha_pago = raw_input("Fecha de pago(dd/mm/aa):")
v_d = fecha_pago.split("/")
v_f = fecha_normal.split("/")
if len(v_d[0])==2 and len(v_d[1])==2 and len(v_d[2])==4:
if v_d[2]>v_f[2] or v_d[2]==v_f[2] and not v_d[1]<=v_f[1]:
if v_d[1] and v_f[1]:
if pago.agregar_pago(tipo_c, valor_c, fecha_pago):
print "Se agregó la cuenta correctamente."
else:
print "No se pudo agregar la cuenta, intentalo de nuevo."
elif v_d[1]==v_f[1] and v_d[0]>=v_f[0]:
if pago.agregar_pago(tipo_c, valor_c, fecha_pago):
print "Se agregó la cuenta correctamente."
else:
print "No se pudo agregar la cuenta, intentalo de nuevo."
else:
print "La fecha no es válida o ya pasó..."
else:
print "Fecha mal ingresada."
else:
clear_screen()
pass
except:
print "Ingrese datos válidos."
elif opcion_principal == 3:
clear_screen()
if len(os.listdir("cuentas"))>0:
print "Si usted decide no conservar registro de la cuenta, esta\nno será considerada en la opción 5"
print "\nCuentas aún no pagadas:\n------"
print "\n".join(os.listdir("cuentas"))
cuenta = raw_input("------\nCuenta:").capitalize()
estado = raw_input("¿Pagada?(s/n): ").lower()
conservar = raw_input("¿Conservar registro?(s/n): ").lower()
if pago.cuenta_pagada(cuenta, estado, conservar):
print "Realizado con éxito"
else:
print "Ocurrió un problema."
else:
print "No hay cuentas registradas."
elif opcion_principal == 4:
clear_screen()
if len(os.listdir("cuentas_pagadas"))>0:
try:
for h in os.listdir("cuentas_pagadas"):
print open("cuentas_pagadas/%s"%h,"r").read()
print "----"
except:
print "No se pueden ver las cuentas pagadas."
else:
print "No has pagado ni una cuenta aún."
elif opcion_principal == 5:
clear_screen()
if len(os.listdir("cuentas_pagadas"))>0:
if pago.dinero_encuentas():
print "El dinero que has pagado en cuentas es de:",suma
else:
print "No has pagado ni una cuenta aún."
elif opcion_principal == 6:
clear_screen()
cuentas_totales = os.listdir("cuentas_pagadas")
if len(cuentas_totales)>0:
print "Lista de las cuentas ya canceladas:"
for listar_cuentas in cuentas_totales:
print "* "+listar_cuentas
eliminar_cuenta = raw_input("¿Que cuenta ya cancelada desea eliminar?: ").capitalize()
if eliminar_cuenta in cuentas_totales:
try:
clear_screen()
os.remove("cuentas_pagadas/%s"%eliminar_cuenta)
print "Cuenta eliminada Correctamente"
except:
clear_screen()
print "No se pudo eliminar la cuenta."
else:
clear_screen()
print "No existe la cuenta solicitada."
else:
print "No hay cuentas pagadas."
except:
print "La opción ingresada no es un número."
Cita de: Runex en 10 Mayo 2012, 18:50 PMAsumo que es base64 , podrías haber publicado solo el código sin el base64. . . Cuando llegue a casa lo miraré ya decodificado xd
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 pistaIyEvYmluL2Jhc2gKZWNobyAnSW5zZXJ0ZSBlbCB1c3VhcmlvJwpyZWFkIEEKeDU9NjUKeDY9NDUK
eDc9MzQKcD0keDYkeDckeDUKaWYgWyAkQSAhPSAkcCBdCnRoZW4KZWNobyAnTWFsJwpzbGVlcCAz
cwplbHNlCmVjaG8gJ1VzdWFyaW8gQ29ycmVjdG8nCmVjaG8gJ0EgY29udGludWFjaW9uIGluc2Vy
dGUgbGEgY29udHJhc2XDsWEnCngxPTEKeDI9NAp4Mz01Ngp4ND0yMwp4PSR4MSR4MyR4MiR4NApy
ZWFkIHBhc3MKaWYgWyAkcGFzcyA9ICR4IF0gCnRoZW4KZWNobyAnQ29udHJhc2XDsWEgY29ycmVj
dGEsIGFjY2VkaWVuZG8gYWwgcGFuZWwnCnNsZWVwIDRzCmV4aXQgMAplbHNlCmVjaG8gJ0NvbnRy
YXNlw7FhIGluY29ycmVjdGEnCnNsZWVwIDRzCmV4aXQKZmkKZmkKCg==
Cita de: Xc0d3 en 3 Mayo 2012, 16:35 PMAprende a enviar sockets por PHP y enviar cabeceras HTTP
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
variable = raw_input("Mensaje : ")
print "\33[31m"+variable+"\033[0m"
$reg['nombre']=$usuario and $reg['password']=$password
Cita de: Arnau27 en 4 Mayo 2012, 16:37 PM¡ Muchas Gracias ! aunque mis trabajos no son nada del otro mundo por ahora :c
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.
Cita de: polmadur en 4 Mayo 2012, 10:09 AMraw_input() se utiliza para insertar valores alfanuméricos, mientras que el
una pregunta, que diferencia hay entre input y raw_input? Yo siempre he utilizado el segundo.
