Menú

Mostrar Mensajes

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ú

Temas - Shrick

#1
Pues eso, que si por alguna remota posibilidad, alguno quisiera invitarme. :silbar: :silbar:

- EDIT -

Ya lo he conseguido gracias a un amigo :3 .
#2
ASM / Pregunta sobre ASM y WinAPI
22 Noviembre 2009, 17:38 PM
Tengo la curiosidad de saber que si siempre que se va a crear programillas como por ejemplo pues el notepad mismo, es totalmente necesario usar la WinAPI o ¿hay otras formas de hacerlo?.

Un Saludo.
#3
He recopilado unos apuntes, y quisiera compartirlo con vosotros, a parte de que no he visto por hay ningún tutoriales completos y decentes sobre Object Pascal.

El curso abarca desde el nivel más básico hasta un nivel medio aproximadamente.

No se trata nada de programación gráfica, ni de base de datos, pero si aprendes hacer uso de librerias externas. Las aplicaciones son en modo consola y son compatibles con todas las versiones de Delphi y también con el compilador Open Source, Free Pascal (con este compilador, tienes que añadir en las primeras líneas de cada archivo {$mode delphi}).

Si tienen alguna pequeña duda sobre el documento no duden en preguntar.

DESCARGA:

http://www.mediafire.com/?sharekey=a5c11d5dfaa2b0130de4fc1039a01674e04e75f6e8ebb871

PD: Lo subo solo a mediafire, porque a megaupload en otro post no descargo nadie.
#4
La idea es indexar todos y cada uno de tus archivos en un simple archivo, para después cuando quieras buscar un archivo, simplemente buscas, es simplemente mera curiosidad este algoritmo y es para probar como se recorrería una estructura de árbol.

La forma más adecuada o sencilla es por medio de recursividad que si digo la verdad hasta hace 2 o 3 meses no tenia ni idea.

Hacerlo de forma iterativa es poco menos que cometer un suicidio, pero por supuesto es posible.

Yo en el algoritmo he ideado una combinación mixta de ambas, para recorrer hacia abajo he usado recursividad y para recorrer en lateral he usado la forma iterativa.

Código (python) [Seleccionar]
# -*- coding: cp1252 -*-

import os

directorio = os.getcwd()
lista = directorio

f = open('listado.txt', 'w')

directorio = directorio.split("\\")
directorio = directorio[0]

#print directorio

os.chdir(directorio + "\\")


def listado():
    i = 0
    archivos = os.listdir(directorio)
    while i <= len(archivos):
        if os.path.isfile(directorio+"\\"+archivos[i]) == True:
            f.write(directorio+"\\"+archivos[i]+"\n")
        else:
            subdirectorios(directorio+"\\"+archivos[i])
        i +=1

def subdirectorios(direc):
    j=0
    archivos=os.listdir(direc)
    while j < len(archivos):
        if os.path.isfile(direc+"\\"+archivos[j]) == True:
            f.write(direc+"\\"+archivos[j]+"\n")
        else:
            subdirectorios(direc+"\\"+archivos[j])
        j+=1

listado()

f.close()


Solo tiene un pequeño problema:

Citar  File "C:\Documents and Settings\Shrick\Mis documentos\Prog\Python\araña.py", line 35, in subdirectorios
    subdirectorios(direc+"\\"+archivos[j])
  File "C:\Documents and Settings\Shrick\Mis documentos\Prog\Python\araña.py", line 30, in subdirectorios
    archivos=os.listdir(direc)
TypeError: listdir() argument 1 must be (buffer overflow), not str

Que es debido seguramente a la capacidad de la lista al poner todos los archivos porque tiene un límite y no se me ocurre una solución :( .
#5
No he visto tutoriales buenos sobre wxWidgets, los buenos están todos (por desgracia en inglés), encontré por hay buscando en Google un libro del mismo.




DESCRIPCIÓN

"This book is the best way for beginning developers to learn wxWidgets programming in C++. It is a must-have for programmers thinking of using wxWidgets and those already using it."

(Este libro es el mejor camino para desarrolladores noveles para aprender a programar WxWidgets en C++. Es un "must-have" para programadores que piensen usar wxWidgets y para aquellos que ya lo usan).

— Mitch Kapor, fundador de Lotus Software y de Open Source Applications Foundation


  • Construye avanzadas aplicaciones multiplataforma que soportan look-and-feel nativo en Windows, Linux, Unix, Mac OS X e incluso Pocket PC
  • Domina wxWidgets desde el principio hasta el final incluso si nunca has creado aplicaciones con GUI antes
  • Asimila capacidades avanzadas de wxWidgets: redes, multihilos, streaming y más
  • CD-ROM: librería de herramientas de desarrollo, código fuente y ejemplos de aplicaciones
  • Prólogo por Mitch Kapor, fundador de Lotus Development and Open Source Application Foundation

wxWidgets es una API en C++ de código abierto y fácil de usar para escribir aplicaciones con GUI que se ejecutan en Windows, Linux, Unix, Mac OS X e incluso PocketPC — soportando el look-and-feel nativo de cada plataforma sin virtualmente añadir más código. Ahora, su creador y sus dos destacados desarrolladores te enseñan lo que tu necesitas para escribir aplicaciones multiplataforma robustas con wxWidgets. Este libro cubre TODO desde cajas de diálogo hasta arrastrar-y-soltar, desde redes hasta multihilos. Incluye todas las herramientas y código que tu necesitas para obtener excelentes resultados, rápidos. Desde AMD hasta AOL, Lockheed Martin hasta Xerox, desarrolladores importantes están usando wxWidgets para ahorrar dinero, incrementar eficiencia y llegando a nuevos mercados. Con este libro, tu también puedes.


  • Inicio Rápido en wxWidgets: manejo de eventos/entradas, diseño de ventanas, dibujado, impresión, diálogos y más.
  • Trabajando con clases de ventana, desde el más simple hasta el más avanzado.
  • Manejo de memoria, depuración, comprobación de errores, internacionalización y otros temas avanzados.
  • Incluye extensos ejemplos de código para Windows, Linux (GTK+) y Mac OS X.

¿PARA QUIEN ES ESTE LIBRO?

Este libro es una guia para usar wxWidgets: un kit de construcción de código abierto para ayudarte a escribir sofisticadas aplicaciones en C++ para varias plataformas, incluyendo Linux, Mac OS X, y Pocket PC. Con ayuda de este libro, un competente programador puede crear aplicaciones multiplataforma con confianza. Desarrolladores ya familiares con wxWidgets deberian tambien serles útil para repasar su conocimiento.

Este libro es accesible para desarrolladores con variedad de experiencia y formación. Tu puedes venir desde una perspectiva de Windows o Unix; tu puedes previamente tener experiencia en MFC, OWL, Win32™, Mac OS, Motif™ o programación en modo consola en Unix. O puede que tu vengas desde un campo totalmente diferente y estés mirando un modo de obtener velocidad en multiples plataformas. El libre no puede cubrir específicamente todos los detalles del lenguaje C++, pero es común para las personas aprender satisfactoriamente C++ y wxWidgets al mismo tiempo, y el obstáculo natural de la API de wxWidgets se hace más fácil. El lector no necesita conocer las técnicas más avanzadas de C++ como las plantillas, los flujos y las excepciones. No obstante, wxWidgets no te impide usarlas.

Managers will find the book useful in discovering what wxWidgets can do for them, particularly in Chapter 1. The combination of the book and the resources on the accompanying CD-ROM will give your staff all they need for getting started on cross-platform programming projects. You'll see how wxWidgets puts tools of tremendous power into your hands, with benefits that include:

Gerentes encontraran este libro útil descubriendo que wxWidgets puede hacer para ellos, particularmente en el Capítulo 1. La combinación del libro con los recursos que acompañan al CD-ROM darán a tu staff la necesidad de ser iniciados en la programación de proyectos multiplataforma. Veras como wxWidgets pone herramientas de increible poder en tus manos que incluye:


  • Ahorro de costes al escribir el codigo una vez que compilará en Windows, Unix, Mac OS X u otras plataformas.
  • Satisfacción del cliente al recibir una aplicación estable, rápida, atractiva con un look-and-feel nativo.
  • Incrementando la productividad desde la amplia variedad de clases que wxWidgets provee, para la creación de excelentes GUIs y para el desarrollo general de aplicaciones.
  • Incremento de cuota de mercado justamente por soportar plataformas que no tendrías considerado previamente, y la habilidad de internacionalizar tus aplicaciones.
  • Soporte desde la gran y activa comunidad de wxWidgets que responderá tus preguntas encantados y corrigiendo rápidamente todos los bugs. El ejemplo de add-ons de terceros listados en el Apéndice E es una evidencia de un prospero ecosistema.
  • Acceso al código fuente para mejorar la aplicación y encontrar y solucionar problemas.

Esta es una guia para escribir aplicaciones de wxWidgets en C++, pero tu puedes usar otra variedad de lenguajes como Python, Perl, una variante de BASIC, Lua, Eiffel™, javascript, Java™, Ruby, Haskell y C#™. Algunos de estos bindings son más avanzados que otros. Para más información, por favor mira el Apéndice E y el sitio WEB oficial en:

http://www.wxwidgets.org

Esta enfocado en 3 plataformas de escritorio populares: Microsoft Windows, Linux usando GTK+, y Mac OS X. No obstante, la mayoria del libro también se aplica a otras plataformas soportadas por wxWidgets. En particular, wxWidgets puede ser usado en la mayoria de las variantes Unix.

AUTORES

Julian Smart, Kevin Hock y Stefan Csomor.

DESCARGA

Mediafire: http://www.mediafire.com/?sharekey=544778248977d17208f8df73f2072ed6e04e75f6e8ebb871
Megaupload: http://www.megaupload.com/?d=3W8E0XLC

PD: Espero que se entienda bien la traducción que hice ::) .
#6
Bueno tras mucho buscar por allí y por allá por fin conseguí hacerlo, en base a un FA (Full Adder) y a una puerta and y 8 entradas y salidas, os lo muestro a continuación, para el que tenga curiosidad:


Este es un multiplicador simple de 1 bit.


Este es un multiplicador de 8 bits que tiene como salida 16 para que pueda representar todas las posibles multiplicaciones.

Si hay alguna forma más efectiva no duden en ponerla.
#7
Tengo una pequeña duda sobre lo que es mi ordenador (el que tengo en casa y tiene cualquiera) y es que me gustaría saber si mi ordenador es una máquina de estados finitos o es una máquina de estados infinitos (máquina de Turing), es que no lo se bien, solo leí por encima sobre el primero, que permite construir un ordenador, hasta hay bien, pero que estaba limitado por ejemplo a multiplicar n x n bits o algo así.

Me gustaría saber si alguien me lo puede aclarar.
#8
Pues eso, en la uni lo voy a dar, exactamente a partir del miércoles empiece con esto, pero para saber un poco y no quedarme sorprendido cuando lo de, es mera curiosidad y para saber en que me voy a meter, para irme preparando...
#9
Tras haber dejado un post sin ninguna respuesta  :-( , empece a buscar como un loco por Google haber como podia hacerlo y ya sabeis el dicho, si quieres, puedes, lo que he hecho esta vez, es crear un servidor socket hecho en python con algunas funciones que se ejecutaran según las ordenes que le demos, según parece, al crear un GUI con Tkinter y teniendo sockets, te ves en una encrucijada pues tenemos dos búcles el de los sockets, para mantener la comunicación y el de la ventana gráfica (root.mainloop()), asi que la solución obvia seria ejecutar una y después otra por cada ciclo, para ello es necesario el uso de thread, que he aprendido a nivel básico como funciona hace un rato :xD , del PDF, Python para todos, y como no tengo ni idea de clases en python lo he adaptado como he podido, y ello me ha obligado a tener que entenderlo.

Funcionamiento:

Simplemente es un servidor socket y un cliente GUI con socket que interactuan, desde el cliente vas mandando comandos y el servidor los ejecuta en la máquina en la que esta ejecutandose. Solo he puesto unos cuantos comando inútiles para ver si funcionaba, y si hace, bastante bien.

Los comandos en cuestión son:

mostrar_os -> Muestra el sistema operativo del servidor
cmd pause -> Pausa una consola en Windows
echo HolaM -> Muestra "Hola Mundo" en la consola.

Código Fuente:

server.py:
Código (python) [Seleccionar]
#!/usr/bin/python

import socket
import os

s = socket.socket()
s.bind(("localhost", 9999))
s.listen(30)

sc, addr = s.accept()

sc.send("Bienvenido!")

while True:
recibido = sc.recv(255)
print "Recibido:", recibido
if recibido == "quit":
break
if recibido == "mostrar_os":
recibido = os.name
if recibido == "cmd pause":
os.system("pause")
if recibido == "echo HolaM":
os.system("echo \"Hola Mundo\"")
sc.send(recibido)

print "adios"

sc.close()
s.close()


client.py:
Código (python) [Seleccionar]
#!/usr/bin/python

from Tkinter import *
import socket
import threading

class App:
def __init__(self, master):
Texto = ""
frame = Frame(master)
frame.pack()

self.texto_chat = Text(frame)
self.texto_envio = Entry(frame)
self.boton_enviar = Button(frame, text="Enviar!", command=self.evento)

self.texto_chat.grid(row=1, column=1)
self.texto_envio.grid(row=2, column=1)
self.boton_enviar.grid(row=2, column=2,)

def evento(self):
Texto = self.texto_envio.get()
s.send(Texto)
self.texto_chat.insert(END, "Cliente -> " + Texto + "\n", END)

root = Tk()
application = App(root)

class socket_thread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)

def run(self):
while True:
mensaje = s.recv(255)
print "Server -> " + mensaje
application.texto_chat.insert(END, "Server -> " + mensaje + "\n", END)
#time.sleep(2)
if mensaje == "quit":
self.salir

def salir():
print "Saliendo..."
s.close()

s = socket.socket()
s.connect(("localhost", 9999))

sock = socket_thread()
sock.start()

root.mainloop()


Espero que sirva de algo esto que hice ;)

Si me dejan ponerle licencia que sea zlib, para que pase a dominio público y no tengas que darme ni reconocimientos ni créditos, si lo usaras en tus aplicaciones tanto libres como comerciales.
#10
Vereis estaba probando para hacer una especie de chat, con un bot, me explico estoy haciendo un cliente y un server con sockets, en python y quiero que cuando le envie un string por medio de sockets al server este lo recoja lea una de las posibles opciones, envie un string, y el cliente muestre la info del string enviado por el server, espero que se entienda.

Server.py
#!/usr/bin/python

import socket

s = socket.socket()
s.bind(("localhost", 9999))
s.listen(30)

sc, addr = s.accept()

sc.send("Bienvenido!")

while True:
recibido = sc.recv(255)
print "Recibido:", recibido
if recibido == "quit":
      break
if recibido == "tonto":
      recibido = "Probando..."
sc.send(recibido)

print "adios"

sc.close()
s.close()


Client.py
#!/usr/bin/python

import socket
#import time

def salir():
print "adios"
s.close()

s = socket.socket()
s.connect(("localhost", 9999))

while True:
mensaje = s.recv(255)
#time.sleep(2)
mensaje = raw_input("> ")
s.send(mensaje)
if mensaje == "quit":
salir
if mensaje == "Probando....":
print mensaje


Soy un novato en esto de los sockets y python, haber si me lo podeis solucionar y asi podre meter el siguiente paso que es trastear con las librerias GUI, recogi parte del code mirando por google y documentación de python.
#11
Buenas tras ver algo de python y traducir alguna que otra aplicación de vb a python, me gustaría profundizar un poco más en vb, para luego trasladar lo aprendido a gambas.

Según he leído en el formulario, puedes meter un componente socket denominado Winsock o similar, que me permite conectarme con otro ordenador a través de Internet, luego también me pareció leer que solo se puede realizar una conexión por componente winsock.

Quiero saber si es posible a través de un winsock para hacer múltiples conexiones.

Espero que se me entienda.
#12
Quisiera saber si es posible usar con FreeCap, y servidores proxy por UDP para por ejemplo jugar al Counter-Strike o al WoW, lo del ping es lo menos, es para saber si se puede saltar el Firewall del sitio en cuestión que tiene bloqueados lo puertos, como objeto de investigación con fines altamente didácticos, ya que aprendes como funciona.

¿Es posible?

/ EDIT /

Si lo he puesto en el sitio incorrecto lo siento no sabia donde ponerlo :-[ :-[
#13
Siguiendo la senda del Joiner, consegui crear el algoritmo para ocultar archivos en imágenes normales.

camuflador.py:

Código (python) [Seleccionar]
# -*- coding: cp1252 -*-

import os
import sys

firma = "[-FIRMA-]"

def camuflar():
nombre_archivo = sys.argv[2]
imagen = "prueba.png"
f = open(nombre_archivo, 'rb')
contenido = f.read()
d = open(imagen, 'rb')
contenido_imagen = d.read()
x = open("camuflado.png", 'wb')
contenido = contenido_imagen + firma + contenido
x.write(contenido)
f.close()
x.close()
def descubierto():
nombre_archivo = sys.argv[2]
f = open(nombre_archivo, 'rb')
d = open("descubierto.zip", 'wb')
contenido = f.read()
c = contenido.split(firma)
print c
d.write(c[1])
f.close()
d.close()
if sys.argv[1] == "-c" and sys.argv[2] != "":
camuflar()
print "¡Camuflado!"
elif sys.argv[1] == "-d" and sys.argv[2] != "":
descubierto()
print "¡Descubierto!"
elif sys.argv[1] == "-h":
print "\n\t-c camuflar\n\t-d descubrir\nSintaxis: python camuflador.py -argumento nombre_archivo"
else:
print "¡No ha escrito argumentos!, añada '-h' para ayuda."


Aun es simple pero se puede implementar perfectamente en vuestros programas.
#14
Scripting / [SOURCE] Joiner hecho en Python!
8 Julio 2008, 15:11 PM
Siguiendo el tutorial de E0N para Visual Basic decidí hacerlo para Python, y conseguí esto:

Funcionamiento:

Código (bash) [Seleccionar]
python Joiner.py archivo_principal lugar_destino

El "archivo.txt" debe contener los nombres de los ejecutables.

Ejemplo:

gui.exe
cepillo.exe
juego.exe


Joiner.py:

import string
import os
import sys

archivo = sys.argv[1] # Metemos el archivo principal
extraccion = sys.argv[2] # Donde queremos que se guarde
archivos_leidos = [] # Va a contener todas las direcciones
f = open('archivos.txt', 'r') # Abrimos para lectura de archivos
i = 0 # Lo usamos para asignar dinamicamente strings a archivos_leidos
ruta = os.getcwd()
ruta = ruta.split('\\')
ruta = os.getcwd()
j = len(f.readlines())
f.seek(0)
while i < j:
    c = f.readline()
    d = c.split('\n')
    d = d[0]
    archivos_leidos.append(i)
    archivos_leidos[i] = d
    i+=1
f.close()
def Juntar():
    Firma = "[**-_-**]"
    SubFirma = "^^_~~_^^"

    os.system('copy stub.dll stub.exe')
    print archivos_leidos
    n = 0
    p = ''
    while n < i:
        p = archivos_leidos[n]
        o = open(p, 'rb')
        archivo = o.read()
        o.close()

        f = open('stub.exe', 'ab')
        f.write(Firma)
        f.write(archivo+SubFirma)
        f.write(archivos_leidos[n]+SubFirma)
        f.write(extraccion+SubFirma)
        f.write('Si')
        f.close()
        n +=1
Juntar()


Utiliza un .txt para obtener las direcciones de los archivos.

Stub.py:

import string
import os
import sys

def Ruta():
    print os.path.dirname + '\\'+ os.path.basename

Archivo = ''
Nombre = ''
RutaExt = ''
Ejecutar = ''

Firma = '[**-_-**]'
SubFirma = '^^_~~_^^'

f = open(ruta(), 'rb')

Todo = f.read()

f.close()

Partes = Todo.split(Firma)

n=1

while n < len(Partes):
    SubPartes = Partes.split(SubFirma)
    i=0
    for i in len(SubPartes):
        if i == 0:
            Archivo = SubPartes(i)
        elif i == 1:
            Nombre = SubPartes(i)
        elif i == 2:
            RutaExt = SubPartes(i)
        elif i == 3:
            Ejecutar = Subpartes(i)

    f = open(RutaExt + '\\' + Nombre, 'wb')
    f.write(Archivo)
    f.close()
    #i += 1


Todavía estoy portandolo, me queda mirar, deducir y escribir algunas cosillas :rolleyes: .

Definitivamente Python es potente

Funciona con el Stub.dll de E0N programado en Visual Basic, para pasar de .py a .exe utilizar el cx_freeze.
#15
Estoy intentado programar un sencillo cortador de archivos de la manera siguiente:

1º Cojo un archivo cualquiera, estoy probando con un archivo llamado "prueba.jpg".

2º Abro el buffer (zona de la memoria temporal donde se pueden modificar datos de un archivo) del archivo "prueba.jpg" en modo binario y lectura, porque no nos interesa escribir en ella.

3º Creamos un bucle que mientras sea verdadero (true) que haga leer X bytes del archivo original ("prueba.jpg") y los copie el contenido leido en un archivo "prueba.jpg.0", continua el bucle y va creando "prueba.jpg.1", "prueba.jpg.2" y asi sucesivamente hasta que no haya más datos, y entonces se cierra el bucle y se cierra el buffer del archivo.

Funcionamiento:

Código (bash) [Seleccionar]
python cortador.py archivo_origen tamaño destino

El tamaño se mide en Bytes para máxima precisión, si quieres una calculadora:

_http://www.terra.es/personal2/pagina_de_fuika/byteconvert.htm

Ejemplos:

Para Linux y similares:

Código (bash) [Seleccionar]
python cortador.py "/home/shrick/archivo.jpg" 102400 "/home/shrick/carpeta_trozos"

Para Windows:

Código (dos) [Seleccionar]
C:\Python25\python.exe "C:\Documents and Settings\Administrador\Escritorio\cortador.py" 102400 "C:\Documents and Settings\Administrador\Escritorio\carpeta_trozos"

Source Code:

Código (python) [Seleccionar]
# -*- coding: cp1252 -*-
# Cortador by Shrick
# Gracias a Google y Documentación de Python
# Agradecimientos a http://www.elhacker.net, en especial a Novlucker

import string
import os
import sys

ruta = sys.argv[1] # Archivo a dividir
nombre_archivo = os.path.basename(ruta) # Obtener nombre real del archivo
tamano_trozo = sys.argv[2] # Tamaño de los trozos (Bytes xDDDD)
destino = sys.argv[3] # Destino de los Trozos
destino2 = destino
tamano_trozo = int(tamano_trozo) # Pasamos argumento de String a Integer
tamano = os.path.getsize(ruta) # Tamaño del Archivo (Bytes)
print "Tamaño: " + repr(tamano) + " Bytes\n\nParticionando Archivo, por favor espere..." # Imprimir Tamaño del Archivo (Bytes)
datos = '' # Datos del buffer
posicion = 0 # Para posicionarse en los datos a leer
i = 0 # Para Hacer .0, .1, .2, .3, .4, etc...
f = open (ruta, 'rb') # Abrimos archivo
while posicion <= tamano: # Creamos bucle que diga que si posicion menor o igual que tamaño hago lo que esta a continuación
    destino = destino + nombre_archivo + "." + repr(i) # Crear nombre del archivo prueba.jpg.0, prueba.jpg.1, prueba.jpg.*
    print "Creado: " + destino
    j = open (destino, 'wb') # Creamos el archivo prueba.jpg.*
    if i == 0: # Condicional para leer el bloque inicial
        datos = f.read(tamano_trozo) # Datos toma lo leido del buffer
        j.write(datos) # Escribimos en el archivo.
        j.close() # Cerramos archivo
        posicion = tamano_trozo # Metemos la posición siguiente en la integer
        i = i + 1 # Sumamos 1 a la variable integer
    else:
        f.seek (posicion) # Función que va al byte con el valor de posición
        datos = f.read(tamano_trozo) # Poner datos (X bytes de info.) en la variable desde esa posición
        j.write(datos) # Escribimos en archivo
        posicion = posicion + tamano_trozo # Vamos una posicion más avanzada
        j.close() # Cerramos archivo
        i = i + 1 # Sumamos 1 a la variable integer
    destino = destino2
f.close() # Cerramos archivo principal

x = open (destino2 + nombre_archivo + ".bat", 'w') # A partir de aquí creamos el .bat para pegar archivos
x.write('copy /b "'+ nombre_archivo + '.0" "' + nombre_archivo + '"\n')
z = 1
while z<i:
    x.write('copy /b "'+ nombre_archivo +'"+"'+ nombre_archivo +'.'+ repr(z)+ '"\n')
    z = z + 1
x.close()

# x = open ('pegador_linux', 'w') # Creamos el equivalente .bat para Linux es decir para Bash
# x.write('#!/bin/bash\n')


Ya he corregido el codigo, ya particiona correctamente.
#16
Estoy aprendiendo python, y ahora mismo tengo un nivel muy básico, por ello, quisiera saber que fallo tiene mi código, porque no me lo interpreta, es el ejemplo de como funcionaria una maquina expendedora, por favor díganme ¿donde he fallado?

print "1º Coca Cola\n\
2ºFanta\n\
3º Agua\n\
4º 7up\n\
Introduzca su elección (nº): "

num = input()

        if num == 1:
print "Has seleccionado Coca Cola"

if num == 2:
print "Has seleccionado Coca Cola"

if num == 3:
print "Has seleccionado Agua"

if num == 4:
print "Has seleccionado 7up"

if num <0 and num > 5:
       
print "¡Opción Incorrecta!, por favor vuelva a ejecutar el programa."


En Java conseguí hacerlo, porque tengo nociones básicas pero me lleva demasiado tiempo...

package maquina_expendedora;
import java.io.*;
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {
        BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
        Integer num;
        String str;
        System.out.println("1º Coca Cola\n2º Fanta\n3º Agua\n4º 7up\nIntroduzca su elección (nº): ");
        str=in.readLine();
        num = Integer.valueOf(str).intValue();
        if (num == 1)
        System.out.println("Has seleccionado Coca Cola");
            if (num == 2)
                System.out.println("Has seleccionado Fanta");
            if (num == 3)
                System.out.println("Has seleccionado Agua");
            if (num == 4)
                System.out.println("Has seleccionado 7up");
        if ( num < 0 || num >5 )
        System.out.println("¡Opción Incorrecta, Por favor vuelva a ejecutar el programa");
    }
}
#17
Necesito ayuda, con el inet, quiero saber como conseguir el nombre de la descarga que estoy bajando, se la ruta, pero quiero hacer algo para que me pille tambien el nombre del archivo por ejemplo de http://www.google.es/images/firefox/fox1.gif que me ponga como nombre fox1.gif
#18
Necesito saber como hacer para seleccionar los archivos de una carpeta y que pasen uno por uno en un bucle por una variable, para subir al FTP ;D , es decir, crear una cola de archivos que subiran uno por uno a un servidor FTP
#19
Hola a todos estoy haciendo un keylogger con fines altamente didacticos, no soy un lamer que va a joder a las personas los odio >:( , he estado probando con el VB, haber como se hace y he llegado a que necesito que me capte las pulsaciones de teclado cuando no esta seleccionado el programa, aquí les dejo algo de code que he creado:


Option Explicit

Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii >= 0 Then
Label1.Caption = KeyAscii
End If
End Sub


La parte de conexiones no me interesa ya que como he dicho es  para pruebas :P
#20
PHP / duda PHP + XML
26 Septiembre 2006, 16:36 PM
Wenas a todos otra vez, visita obligada ;D , bueno voy al grano, estoy investigando con php y xml, y su potencia, que me deja sin palabras, puede sustituir a cualquier bases de datos con eficiencia, siempre que se tenga cuidado con los CHMOD, aquí les dejo mi código:

log.xml
<?xml version = "1.0" encoding = "iso-8859-1" ?>
<registro>
<user>
<fecha></fecha>
<ip></ip>
<referer></referer>
<so></so>
</user>
</registro>


reg_ip.php
<?php
$dom 
= new DomDocument();
$dom -> load("log.xml");
$ip $_SERVER['REMOTE_ADDR'];
$referer $_SERVER['HTTP_REFERER'];
$so $_SERVER['HTTP_USER_AGENT'];
//DomNode->insert_before

#Elementos

$user $dom -> createElement("user");
$fechax $dom -> createElement("fecha");
$ipx $dom -> createElement("ip");
$refererx $dom -> createElement("referer");
$sox $dom -> createElement("so");

#Crear nodos con texto
$tiempo date("H:i, d/F/Y");

$fechatext $dom -> createTextNode($tiempo);

if (
$ip != NULL){
$iptext $dom -> createTextNode($ip);
}

if (
$referer != NULL){
$referertext $dom -> createTextNode($referer);
}

if (
$so != NULL){
$sotext $dom -> createTextNode($so);
}

$fechax -> insert_before($fechatext$fechatext);
$ipx -> insert_before($iptext$iptext);
$refererx -> insert_before($referertext$referertext);
$sox -> insert_before($sotext$sotext);

$user -> insert_before($fechax$fechax);
$user -> insert_before($ipx$ipx);
$user -> insert_before($refererx$refererx);
$user -> insert_before($sox$sox);

$dom ->documentElement -> insert_before($user$user);

$dom -> save("log.xml");

?>


El problema, es los insert_before que esta mal la sintaxis no se porque, asi que por favor echenme una mano, gracias ;) .

SaLuDOS!!!!!