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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Temas
Páginas: 1 [2] 3 4
11  Programación / Programación C/C++ / Ayuda no me copia el string entero en: 10 Diciembre 2015, 15:56 pm
Estoy trabajando con el portapapeles en c++ y estuve viendo ejemplos en la web y he implementado el metodo.

Pero resulta que cuando uso este método para copiar texto al portapapeles, me lo copia, pero cuando hago la prueba, me queda faltando el ultimo carácter del string que le pase el metodo.

Si yo copio:
Codigo --> me copia --> Codig

Este el método que utilizo en mi programa:

Código
  1. void toClipboard(const std::string &s){
  2. OpenClipboard(0);
  3. EmptyClipboard();
  4. HGLOBAL hg=GlobalAlloc(GMEM_MOVEABLE,s.size());
  5. if (!hg){
  6. CloseClipboard();
  7. return;
  8. }
  9. memcpy(GlobalLock(hg),s.c_str(),s.size());
  10. GlobalUnlock(hg);
  11. SetClipboardData(CF_TEXT,hg);
  12. CloseClipboard();
  13. GlobalFree(hg);
  14. }
  15.  

Gracias de antemano.
12  Programación / Java / [Tutorial rapido]Programación orientada a objetos en Java(Para programadores) en: 19 Noviembre 2015, 09:11 am
Hola gente, bueno hoy quiero aportar mi granito de arena a esta comunidad que me ayudado bastante a resolver mis problemas  ;-) En este tutorial explicare como funciona la POO en Java.

Antes que nada quiero decir que este tutorial va dirigido a personas que ya tienen conocimientos de programación, en especial si vienes de otro lenguaje orientado a objetos. No me voy a poner a explicar a fondo para que funciona cada cosa, simplemente explicare como es la estructura de la POO en Java.

Creando clases:
NOTA: Cuando creas una clase, dicha clase tiene que ser almacenada en un archivo de texto con la extensión ".java", y ese archivo tiene que tener el mismo nombre de la clase.
Ya dentro del archivo creas la clase de la siguiente manera:

Código
  1. public class NombreDeLaClase {}

Como vemos, en Java es recomendable que sigamos en siguiente formato para el nombre de las clases, empezamos con mayúsculas y cuando empieza otra palabra, la primera letra en mayúscula, a esta forma de escribir se denomina UpperCamelCase.

Y entre las llaves de la clase definiremos, los atributos, métodos, y todas las características que queremos que tenga la clase.

Creando métodos:
La estructura de un método en Java es la siguiente:
Código
  1. public void nombreDelMetodo() {}

Como vemos, en Java es recomendable que sigamos en siguiente formato para el nombre de los métodos, empezamos con minúscula y cuando empieza otra palabra, la primera letra en mayúscula, a esta forma de escribir se denomina lowerCamelCase.

Y dentro de las llaves del método, implementaremos nuestro código.

En Java podemos tener varios métodos con el mismo nombre, pero con la diferencia que deben recibir diferentes parámetros.

Recibir parámetros:
Para que un método reciba parámetros, debemos especificarlos entre los paréntesis, así:
Código
  1. public void nombreDelMetodo(String cadena) {}

Devolviendo valores:
En Java para que un método devuelva un valor, primeros debemos especificar que va devolver ese método, no podemos devolver cualquier valor que nosotros queramos, como se haría en Python por ejemplo, en Java primero se define que es lo que se va a devolver, si es un String, un entero, etc. Y eso lo definimos de la siguiente manera:
Cuando un método tiene la palabra "void", significa que no va a devolver nada:
Código
  1. public void nombreDelMetodo() {}
Si queremos que devuelva algo, simplemente cambiamos el "void", por el valor que queremos devolver, si qusieramos devolver una cadena, lo haríamos de la siguiente forma:
Código
  1. public String nombreDelMetodo() {}
También es posible devolver, arreglos y hasta objetos, solo es cuestión de especificar que devolver.

Atributos y ámbitos:
Con ámbito, me refiero al alcance que tienen las variables para que se puedan llamar unas a otras dentro de la clase.
En Java tenemos básicamente 2 ámbitos de las variables, ellas pueden ser:
Variables de clase:
Estas variables son visibles para toda la clase, es decir que pueden ser accedida por todos los métodos de la misma.
Estas se definen fuera de los métodos, es decir al mismo nivel en el que se definen los métodos de la clase:
Código
  1. public class NombreDeLaClase {
  2.     String cadena = "Hola mundo";
  3. }
Variables de método:
Estas variables, se definen dentro de los métodos, y solo pueden ser accedidas por el método en donde fueron declaradas:
Código
  1. public class NombreDeLaClase {
  2.     public void nombreDelMetodo() {
  3.          String cadena = "Hola mundo";
  4.     }
  5. }
Si quisiéramos llamar la variable cadena, desde otro método, simplemente no podremos, dará error y dirá que no se encuentra esa variable.

Constructor de la clase:
Como en todo lenguaje siempre tenemos el constructor, que es el primer método que se ejecuta cuando se instancia un objeto de la clase, para crear un constructor basta con crear un método con el mismo nombre de la clase y ya tendremos uno:
Código
  1. public class Animal {
  2.     public void Animal() {
  3.          //Código a ejecutar
  4.     }
  5. }

También podemos tener varios constructores con el mismo nombre, pero con la diferencia que deben recibir diferentes parámetros.

NOTA: Los constructores no pueden devolver valores, ni siquiera se pone el "void", pero si pueden contener parámetros.

Herencia:
En Java solo podemos hacer una herencia de otra clase, no se permite la herencia múltiple.
Para heredar de otra clase, simplemente debemos poner al lado del nombre de la clase lo siguiente:
Código
  1. extends NombreDeLaClaseAHeredar
Y se vería de la siguiente forma:
Código
  1. public class Perro extends Animal{
  2. }
En este ejemplo estaríamos heredando los atributos y métodos de la clase Animal.

Llamar al constructor de la superclase:
En muchos casos necesitaremos llamar al constructor de la superclase para pasarle parámetros.
Para hacerlo, llamamos este método super() y entre los paréntesis, le pasamos los parámetros que requiere la superclase. Pero este método solo puede llamarse desde el constructor, y debe estar en la primera linea del método constructor:
Código
  1. public class Perro extends Animal{
  2.     public Animal() {
  3.          super("perro");
  4.     }
  5. }

Modificadores de acceso(Encapsulamiento):
En Java existen los modificadores de acceso, que son los permisos que le podemos poner a los atributos y métodos. Estos nos permiten determinar si los atributos o métodos, pueden ser accedidos desde un determinado lugar.
Estos modificadores se colocan al principio de la definición de un atributo o método, por ejemplo el modificador "private":
Código
  1. private String cadena = "Hola mundo";//Atributo
  2. private void metodo() {}//Metodo

Tenemos diferentes modificadores:
public:
El método o atributo podrá ser accedido desde cualquier lugar.
protected:
El método o atributo que lo posea, solo podrá ser accedido por la misma clase o por las clases que lo hereden.
defualt:
Este "modificador" en realidad no es un modificador, y se define cuando no ponemos ningún modificador de acceso. Y el método o atributo que lo posea solo podrá ser accedido por clases que estén en el mismo paquete.
private:
El método o atributo que lo posea, solo podrá ser accedido por la misma clase.

Creando objetos:
Para crear objetos es tan sencillo como hacer esto:
Código
  1. Perro perro1 = new Perro("Toby");
Como ven primero especificamos de que tipo sera nuestra variable, en este caso sera una clase, de tipo "Perro", luego le ponemos un nombre, y después del signo ponemos la palabra reservada "new", para indicar que estamos creando un nuevo objeto, después volvemos a escribir el nombre de la clase("Perro") y entre los paréntesis le pasamos los parámetros al constructor del objeto, si es que lo requiere.

Accediendo a los atributos y métodos del objeto:
Luego que tengamos nuestro objeto creado, podremos acceder a los atributos y métodos que posea el objeto. Para ello debemos poner el nombre del objeto y luego un punto y después podremos llamar atributos y ejecutar funciones de ese objeto:
Código
  1. Perro perro1 = new Perro("Toby");
  2. perro1.ladrar();
  3. String nombrePerro1 = perro1.getName();
  4.  


Hasta ahí lo mas básico de la programación orientada a objetos en Java, espero que sirva de ayuda para la gente que quiera aprender este maravilloso lenguaje, sobre todo para los que ya tienen experiencia en otros lenguajes y no quieran empezar un curso de cero.

Un saludo a todos!  ;D
13  Programación / Scripting / [Duda]Es posible pasar argumentos a un Script Python de esta manera en: 18 Noviembre 2015, 19:27 pm
Estoy haciendo un compilador en Python, para compilar archivos.java
Pero quería saber si al arrastrar un archivo.java encima de mi script.py, este ultimo tome la ruta de ese archivo.java, y después compilar el archivo y ejecutarlo. Bueno lo de compilar y ejecutar ya lo tengo controlado.

Gracias de antemano.
14  Programación / Scripting / [Python-POO]Necesito ayuda con un script en: 15 Noviembre 2015, 19:50 pm
Instancio 2 objetos de la clase Guerrero, uno para la PC y otro para el jugador, ambos objetos son de la misma clase.

En el constructor de esta clase, hace que la lista "guerreros" tome un valor aleatorio por cada indice.

Primero creo un objeto llamado guerreroPlayer y luego imprimo su lista con los números aleatorios que me genero. Luego lo mismo hago pero con el objeto guerreroPC, hasta ahí todo bien, cada lista con valores diferentes.

Pero el error esta en cuando vuelvo a imprimir los valores de la lista del objeto guerreroPlayer. Me muestra los mismos valores que tiene el objeto guerreroPC  :-\ y no los mismos de antes.

Alguien sabe por que sucede esto? gracias de antemano

Código
  1. import random
  2.  
  3. class Guerrero():
  4.    nombre = "";
  5.    guerreros = [0,0,0,0,0,0,0,0,0,0];
  6.  
  7.    def __init__(self, nombre):
  8.        self.nombre = nombre;
  9.        for numero in range(0, 10):
  10.            numeroRandom = random.randint(1,1000);
  11.            self.guerreros[numero] = numeroRandom;
  12.  
  13.    def imprimirNumeros(self):
  14.        for i in self.guerreros:
  15.            print(i);
  16.        print("********************");
  17.  
  18. guerreroPlayer = Guerrero("Player");
  19. guerreroPlayer.imprimirNumeros();
  20.  
  21. guerreroPc = Guerrero("PC");
  22. guerreroPc.imprimirNumeros();
  23.  
  24. guerreroPlayer.imprimirNumeros();
  25.  
15  Programación / Scripting / [Python]Detectar teclas globalmente en: 8 Noviembre 2015, 03:55 am
Hay alguna forma de detectar si se pulsa una tecla pero no estando en el programa.
Solo me detecta si pulso una tecla, pero solo cuando mi programa tiene el foco :-\ Pero lo que yo quiero es que me detecte desde cualquier lugar.
Es posible hacer esto?  :-\
16  Programación / Java / [Solucionado]Paso de parámetros por referencia en: 21 Octubre 2015, 06:07 am
Estoy muy enredado con esto del paso de parámetros en Java, si es por valor o por referencia  :-\

Estuve leyendo un par de artículos por internet y según dicen que los pasos por parámetros en Java, son por valor y no por referencia.

Pero lo que no me entra en la cabeza, es cuando le paso un objeto como parámetro a un método, este supuestamente si fuera por valor, el método debería tomar una copia del objeto, pero no al contrario, el método efectúa los cambios en el objeto original que le pase  :-\ , Varios artículos que he leído afirman que Java es 100% paso de parámetros por valor, pero cuando se trata de pasar objetos por parámetros, los métodos hacen los cambios en el objeto original que le pase, es decir que no hacen una copia de dicho objeto, al contrario con los datos primitivos(int, long, short, String) que si lo hace.

¿Entonces Java es por valor y por referencia?  :-\
Java es raro :¬¬ es compilado e interpretado también  :-[ jaja pero eso no viene al caso.

¿Alguien sabe por que sucede esto, o que entendí mal?  :-\

Muchas gracias desde ya.
17  Programación / Java / [School]Ejercicios POO en Java en: 26 Abril 2015, 17:26 pm
Hola gente como están?, pues he decidido abrir una especie de escuela en este foro (con los permisos adecuados por los mods claro), en el que dejare un par de ejercicios de POO para los que quieran practicar sus habilidades.

Pues daré 10 ejercicios mas o menos fáciles para principiantes en POO y otros un poco mas complicados. Y a los que se anoten, los ayudare con sus códigos si se llegan a atascar.

Pues eso, si se quieren anotar, publiquen un comment abajo diciéndolo y si hay interés, en un rato publicare el primer ejercicio.

Saludos!!
18  Programación / Java / [Ayuda]Primera vez que uso MySQL con Java y tengo un error en: 20 Abril 2015, 03:27 am
Estoy siguiendo un tutorial para conectar Java con MySQL, pues me instale todo lo necesario y seguí paso a paso toda la instalación.

Este es el tutorial que estoy siguiendo:
http://www.javaya.com.ar/detalleconcepto.php?codigo=132&inicio=40

Voy en la parte que dice:
Citar
Ejecución del PhpMyAdmin para la creación de la base de datos.

Haciendo clic sobre el ícono de la bandeja del sistema aparece un menú que nos permite lanzar el PhpMyAdmin para crear la base de datos de MySQL:

Pues hay en el tutorial me dice que si el icono esta verde es que el programa esta funcionando bien, pues a mi no me aparece verde, me aparece naranja, y lo peor de todo es que cuando quiero entrar a "phpMyAdmim" para crear la base de datos como indican en el tutorial me sale esto:

Error HTTP 404.0 - Not Found
Se ha quitado el recurso que está buscando, se le ha cambiado el nombre o no está disponible en estos momentos.


Desde hace mucho que me quiero iniciar en esto, y hoy me anime. ¿Alguien me puede echar una mano?
19  Programación / Java / [Duda]Uso de clases internas en: 14 Abril 2015, 00:05 am
Hola gente, acá con una nueva duda.

¿Una clase interna hereda de de la clase contenedora o como es?
Código
  1. public class Prueba{
  2.    private String texto = "Hola mundo";
  3.    private String texto2 = "Hola mundo 2";
  4.  
  5.    private void saludar() {
  6.        System.out.println(texto);
  7.    }
  8.  
  9.    class ClassInterna extends javax.swing.JFrame{
  10.        public ClassInterna() {
  11.            saludar();
  12.            System.out.println(texto2);
  13.        }
  14.    }
  15. }
  16.  

Si se fijan la clase interna hereda de JFrame, y aún así puedo seguir usando las variables y métodos de la clase contenedora, osea es como si tuviera un método mas.

O a lo mejor puede ser, por que la clase interna esta en el ambiente de la clase contenedora, nose exactamente.

¿Como funciona la clase interna, como un método?
20  Programación / Java / [Ayuda]Timer en Android en: 12 Abril 2015, 05:41 am
Pues cuando yo trabajaba en Java puro, recuerdo que usaba muchísimo la clase Timer la cual sirve para hacer correr procesos particulares o en diferentes hilos.

Pues ahora eso mismo me gustaría hacerlo en Android, me he fijado la Api de Android y si esta disponible la misma, solo que Android la ha cambiado bastante y lo encuentro un tanto complicado, nada que ver como lo hacia en Java.

He buscado por la red y he encontrado bastante material, por ejemplo este y otros:
http://stackoverflow.com/questions/4597690/android-timer-how
Trato de entenderlo, pero me es complicado, ¿alguien me podría ayudar a entender un poco de esto?

Se que hay otras formas como los Services, pero es demasiado para lo que requiero, necesito algo sencillo, por eso elige este, si alguien conoce alguna clase mejor, que la diga.
Páginas: 1 [2] 3 4
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines