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

 

 


Tema destacado:


  Mostrar Mensajes
Páginas: 1 ... 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 [33] 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 ... 88
321  Seguridad Informática / Hacking / Re: Me gustaria tener un tutor en: 21 Julio 2015, 03:56 am
Yo no soy como los demás que quieren aprender tonterías para hackear y ya. yo quiero aprender y estaba aprendiendo phyton, pero no tengo a alguien o algo que me motive, realmente quiero aprender.

¿Te das cuenta de que te estás contradiciendo?

Estas diciendo que quieres aprender y a la vez que no estás motivado. En lo personal creo que lo primero que tienes que hacer es plantearte "¿que quiero hacer? ¿que quiero aprender?" Y luego, comenzar a hacerlo. Es un mundo fantastico, complicado y como bien dijo @engel lex, autodidacta. Existen infinitas cosas que aprender, y nunca se va a poder saber todo, además que lo que aprendas va a estar en constante cambio. Así que no tengas miedo en empezar a aprender. ¿Aprender que? Ya eso te lo tienes que plantear tu. Y en el foro puedes ir preguntando tus dudas, problemas, te podremos decir si esta bien o esta mal lo que haces.

Salu2s

PD: Esto diría yo:
en este mundo eso eso es muy difícil o raro... este mundo es autodidacta, basicamente todos aprendimosemos por nuestra cuenta :P
322  Programación / .NET (C#, VB.NET, ASP) / Re: Librería de códigos C# (Compartan aquí sus códigos) en: 20 Julio 2015, 00:35 am
28 - Drag&Drop sobre un TextBox (detectando la codificación de caracteres)

Primer que todo vamos a repasar los conceptos básicos que se van a mostrar.

¿Que es un Drag&Drop?

Drag significa Arrastrar
Drop significa Soltar

Por lo tanto => Drag&Drop => Arrastrar y Soltar. Vamos que es la simple función de arrastrar un documento y soltarlo en algún lado. En este caso vamos a ser capaces de seleccionar un archivo de texto y soltarlo sobre un TextBox dentro del formulario.

Luego tenemos como detectar la codificación de caracteres. La codificación de caracteres es el método que permite convertir un carácter de un lenguaje natural en un símbolo de otro sistema de representación aplicando normas o reglas de codificación

Existen varios tipos de codificación:

  • UTF-8
  • UTF-16 Big Endian
  • UTF-16 Little Endian
  • UTF-7
  • UTF-32

Entre otros.

Ahora, ¿Cómo vamos a detectar que codificación tiene un fichero?

Para esto vamos a analizar la "Marca de orden de bytes (BOM)". BOM es un carácter Unicode que se utiliza para indicar el orden de los bytes de un fichero de texto. Su código es U+FEFF.

Representaciones de las marcas de orden de bytes para cada codificación

Encoding Representación (Hex)
UTF-7 2B 2F 76
UTF-8 EF BB BF
UTF-16 Little Endian FF FE
UTF-16 Big Endian FE FF
UTF-32 Big Endian 00 00 FE FF

Veamos el método que vamos a utilizar para analizar la BOM:

Código
  1. /// <summary>
  2.        /// Determina la codificación de un fichero de texto analizando la marca de orden de bytes (BOM)
  3.        /// Devuelve la codificación por defecto de la página ANSI del sistema en caso de que el análisis falle
  4.        /// </summary>
  5.        /// <param name="filename">El fichero de texto a analizar</param>
  6.        /// <returns>La codificación detectada.</returns>
  7.        public static Encoding GetEncoding(string filename)
  8.        {
  9.            // Read the BOM
  10.            byte[] bom = new byte[4]; //Buffer para almacenar los datos leidos del fichero
  11.  
  12.            //Utilizamos un FileStream para abrir el fichero
  13.            using (FileStream file = new FileStream(filename, FileMode.Open, FileAccess.Read))
  14.            {
  15.                file.Read(bom, 0, 4); //Leemos los 4 primeros bytes del fichero
  16.            }
  17.  
  18.            // Analizamos la BOM y devolvemos la codificación correcta
  19.            if (bom[0] == 0x2b && bom[1] == 0x2f && bom[2] == 0x76) return Encoding.UTF7;
  20.            if (bom[0] == 0xef && bom[1] == 0xbb && bom[2] == 0xbf) return Encoding.UTF8;
  21.            if (bom[0] == 0xff && bom[1] == 0xfe) return Encoding.Unicode; //UTF-16LE
  22.            if (bom[0] == 0xfe && bom[1] == 0xff) return Encoding.BigEndianUnicode; //UTF-16BE
  23.            if (bom[0] == 0 && bom[1] == 0 && bom[2] == 0xfe && bom[3] == 0xff) return Encoding.UTF32;
  24.  
  25.            //Devolvemos la codificacion por defecto de la página ANSI del sistema.
  26.            return Encoding.Default;
  27.        }

Nota: Para usar FileStream, debemos añadir a los using:

Código
  1. System.IO;

Nota: Ese ^^ nombre de espacio contiene tipos que permiten leer y escribir de archivos y flujos de datos, y tipos que brindan soporte básico para el trabajo con directorios.

Un FileStream, nos permite crear un flujo alrededor de un fichero, soportando operaciones de lectura y escritura tanto sincrónicas como asincrónicas.

Veamos que lo utilizamos con la declaración using que nos brinda una sintaxis conveniente para asegurar el uso correcto de objetos que implementen la interfaz IDisposable. Esta interfaz define un método que nos permite cerrar (de-allocate) los recursos de un objeto. Por lo tanto luego que se salga del ámbito de la declaración using los recursos del objeto sobre el cual se esta trabajando serán liberados. En este caso (FileStream) no será necesario hacerle Close()

El FileStream tiene un constructor con varias sobrecargas, en este caso vamos a utilizar la sobrecarga que tiene esta signatura:

Código
  1. FileStream(String, FileMode, FileAccess)

Donde el primer parámetro viene dado por la ruta del archivo, o sea, fileList[0]. El segundo es un enum que especifica como el sistema operativo debe abrir el archivo, en este caso FileMode.Open, lo cual indica que el sistema operativo debe abrir un fichero existente. La habilidad de abrir un fichero es dependiente del valor especificado por el enum  FileAccess en el próximo parámetro el cual define que permiso se tiene al acceder al archivo (Read, Write o Read/Write). En este caso vamos a utilizar FileAccess.Read, pues solo vamos a leer el archivo.

El método Read() que pertenece a la clase FileStream, nos permite leer un bloque de bytes desde el fichero apuntado por el flujo y guardarlo en un buffer dado. En este caso el método devuelve un int que representan la cantidad de bytes leídos. Pero modifica el primer parámetro, pues al ser un array, este es pasado al método por referencia, y por lo tanto es modificado. En él se guardan los bytes leídos. Este parámetro es un byte[]. El segundo parámetro es un int que representa el offset (digámosle la posición) en el array (primer parámetro) donde los bytes se comenzarán a guardar. Y el tercer parámetro es el máximo número de bytes a leer.

Ahora, como lo que queremos es mostrar el contenido de un fichero de texto en un TextBox vamos a insertar un TextBox en el formulario.

Nota: En este ejemplo>

Propiedad Name del Form -> mainForm
Propiedad Name del TextBox -> textBox


Ahora, para permitirle a textBox recibir información que haya sido arrastrada y soltada sobre él, le vamos a poner la propiedad AllowDrop = true

Ahora nos vamos subscribir a los eventos textBox_DragEnter y textBox_DragDrop. Luego vamos a necesitar un string[] para almacenar las rutas de el/los fichero/s que se soltaron sobre textBox. Para eso declaramos un campo privado dentro de la clase de mainForm:

Código
  1. string[] fileList;

Veamos que hacemos una vez que se capture el evento textBox_DragEnter

Código
  1. private void textBox_DragEnter(object sender, DragEventArgs e)
  2.        {
  3.            if (e.Data.GetDataPresent(DataFormats.FileDrop))
  4.            {
  5.                fileList = (string[])e.Data.GetData(DataFormats.FileDrop);
  6.                if (fileList.Length == 1 && Path.GetExtension(fileList[0]) == ".txt")
  7.                {
  8.                    e.Effect = DragDropEffects.Copy;
  9.                }
  10.                else
  11.                    e.Effect = DragDropEffects.None;
  12.            }
  13.        }

Lo primero que vemos es la propiedad Data del tipo DataEventArgs e que devuelve un objeto que implementa IDataObject, que contiene datos asociado con este evento. Entonces lo que hacemos es llamar al método GetDataPresent() de la interfaz IDataObject el cual nos permite determinar si la información almacenada en esta instancia está asociada a un formato especifico. En este caso le pasamos como parámetro el campo estático (solo-lectura) FileDrop de la clase DataFormats - DataFormats.FileDrop. El cual especifica el formato de Windows para arrastrar y soltar ficheros.

Una vez explicado esto, lo que comprobamos es que si lo que se está soltando encima de textBox es un archivo vamos a hacer una cosa:

Primero que todo:

Código
  1. fileList = (string[])e.Data.GetData(DataFormats.FileDrop);

Con el método GetData() sobre la propiedad Data del tipo DragEventArgs e obtenemos la información (con el formato establecido [DataFormats.FileDrop]) que estamos arrastrando sobre el textBox. Luego, vemos que le estamos haciendo un cast a string[] y se lo asignamos al campo que habíamos declarado. Aquí tendremos toda la información que viene siendo arrastrada y capturada por el evento. Como el formato es FileDrop lo que nos va a añadir en el array son las rutas a los documentos que están siendo arrastrados.

Ahora vamos a hacer 2 comprobaciones:

1 - Que solo estemos arrastrando 1 solo fichero, para esto solo tenemos que comprobar que la longitud del array sea 1

2 - Que la extensión del archivo sea ".txt".

Para comprobar esta segunda condición vamos a utilizar el método GetExtension() de la clase Path que pertenece al namespace System.IO. La clase estática Path realiza operaciones sobre strings que contienen información de rutas de ficheros o directorio. En este caso utilizamos el método estático GetExternsion(), el cual recibe un string que representa "la ruta" de la cual queremos sacar la extensión. En este caso: fileList[0], el cual es el único archivo que estamos arrastrando y comprobamos si es igual a ".txt". En ese caso vamos a definir la propiedad Effect del tipo DragEventArgs e a DragDropEffects.Copy, en caso contrario (que no se cumplan las dos condiciones) a DragDropEffects.None.

La propiedad Effect aplica el efecto determinado para el cursor cuando se hace una operación de Drag & Drop sobre el control.

Luego, vemos que le asignamos un valor utilizando el enum DragDropEffects, y su valor Copy, que crea el efecto de que lo que se está arrastrando es copiado a donde se va a soltar.

En el otro caso está DragDropEffects.None que implica que donde se va a soltar no acepta datos. Por lo tanto no aceptará los datos cuando se suelten los datos.

Ahora veamos el EventHandler para textbox_DragDrop:

Código
  1. private void textBox_DragDrop(object sender, DragEventArgs e)
  2.        {
  3.            Encoding fileEncoding = GetEncoding(fileList[0]);
  4.            using (StreamReader file = new StreamReader(fileList[0], fileEncoding))
  5.            {
  6.                textBox.Text = file.ReadToEnd();
  7.            }
  8.        }

Lo primero que hacemos es capturar lo que devuelve el método GetEncoding() (explicado anteriormente), el cual devuelve la codificación de caracteres correspondiente al fichero (fileList[0]) tras analizar la BOM.

Luego, utilizando un StreamReader, que también pertenece al namespace System.IO vamos a leer el fichero.

Un StreamReader nos permite leer caracteres de un flujo de bytes en una codificación específica. En este caso utilizamos la declaración using con el mismo objetivo que explique arriba con el FileStream. Utilizaremos una sobrecarga del constructor del StreamReader que recibe la ruta del fichero al cual le queremos crear el flujo (fileList[0]) y la codificación de caracteres con la cual queremos abrirla. En este caso le pasamos lo que nos devolvió el método GetEncoding().

Entonces dentro del ámbito de la declaración using vamos a asignarle a la propiedad Text de textBox, lo que nos devuelve el método ReadToEnd() perteneciente a la clase StreamReader. Este método lee todos los caracteres desde la posición actual (en el stream) hasta el final del stream. Se dice desde la posición actual, pues se pueden haber hecho lecturas desde el stream anteriormente y se queda guardada hasta que posición se leyó, en este caso no se había leído nada, por lo tanto se lee desde el principio hasta el final.

Bueno, esto es todo para este código, solo les queda probarlo. Espero que entiendan todo, quizás no sea la mejor manera de explicarlo, pero lo hice lo mejor y más sencillo que pude.

Cualquier duda/comentario/crítica será bienvenida.

Espero seguir subiendo códigos pronto.

Salu2s
323  Programación / Programación C/C++ / Re: ayuda: kbhit() en iterador en c++ en: 19 Julio 2015, 05:14 am
Hola, he visto tu código y tienes varios errores con respecto al mismo. Primero, todo lo que tienes después del while debes encerrarlo en {}, porque todo eso se va a ejecutar mientras vayas leyendo. Ahora, también una sugerencia, utiliza nombres descriptivos para las variables, o sea, si vas a crear una variable para contar las partidas ganadas, utiliza algo como partidasGanadas, así tu código será más legible.

No obstante, no manejo muy bien C++ y me encontré con el problema de que tienes que leer los caracteres G y P para identificar si "el jugador" ganó o perdió, y identificar la pulsación de la tecla ESC, lo cual me parece algo complicado para un ejercicio de una persona que está empezando a programar en C++, lo normal(mas sencillo) sería hasta que se encuentre una linea en blanco, no obstante, estuve mirando, y aquí te explican una manera de hacerlo, o sea, como capturar el ESC, pues como te puedes dar cuenta la consola está destinada a leer caracteres y esperar por un retorno de linea (o sea, ENTER), en el ejemplo que te ponen en esta lugar: http://stackoverflow.com/questions/20175165/read-int-numbers-from-cin-until-esc-is-pressed-c modifican el buffer de la entrada estándar para que no espere el salto de linea.

Lee eso y mira a ver que puedes ir sacando de ahi. Lo demás solo es cuestión de llevar la suma en los contadores y las variables para calcular la racha.

Salu2s
324  Programación / PHP / Re: [Ayuda] foreach solo devuelve un valor? habiendo 20 en: 19 Julio 2015, 03:20 am
Cuando haces:

Código
  1. $dbarray = $query->fetch_array(MYSQLI_NUM);

Obtienes por cada llamada a ese método (fetch_array()) 1 fila en forma de array donde los indices son numéricos y los valores del array son los valores en los campos. Puedo ver que tu tabla tiene tres columnas. Por eso te salen 3 valores.

Debes incluir eso en un array en un while, algo así como:

Código
  1. while($row= $query->fetch_array(MYSQLI_NUM))
  2. {
  3.  //Imprimes los valores de la fila $row
  4. }

Nota: Yo, en vez de MYSQLI_NUM, utilizaría MYSQLI_ASSOC, y el array sería asociativo, donde los indices en vez de ser números serían los nombres de las columnas (campos de tu tabla), o simplemente en vez del método fetch_array(), utilizaría el método fetch_assoc()

Espero haberte ayudado! Cualquier cosa pregunta.

Salu2s
325  Programación / Programación C/C++ / Re: ayuda sobre el lenguaje c++ en: 19 Julio 2015, 03:07 am
gracias ya lo modifique un poco espero que alcanze ya que no hice el codigo todavia y me da verguenza usar pseudo codigo

Eso tampoco es descriptivo! Y si no tienes nada hecho, puedes intentar hacer algo y estaremos dispuesto a ayudarte en lo que no puedas. Pero debes intentarlo.

Salu2s

326  Sistemas Operativos / Windows / Re: mi pc no para de reiniciarse en: 18 Julio 2015, 18:18 pm
hdd== disco duro???

Si! HDD - Hard Disk Drive - Unidad de disco duro

^^ Siginifica que versión de Windows

Por tercera vez!

le he caMBiado el disco duro de mi otro pc Y sigue igual

hdd== disco duro???

Si lo cambiaste y no es el mismo sistema operativo, te puede dar problemas, además si el hardware de tu otra pc es diferente a esta también te puede dar problemas, incluso desconfigurarte el sistema de tu otra pc.

Salu2s
327  Sistemas Operativos / Windows / Re: ¿Que piensan de W 10? [Debate] en: 18 Julio 2015, 17:49 pm
Estos post deben ser consecuencia del calor...... :xD



Dios Mio! Por aquí debe andar más o menos así igual! Sol que raja las piedras. No quiero ni salir a la calle.

Hola, ¿es aquí lo del hilo del Bronx?
:laugh: :laugh:

Salu2s
328  Sistemas Operativos / Windows / Re: mi pc no para de reiniciarse en: 18 Julio 2015, 17:38 pm
¿Que sistema operativo tienes?

^^ Siginifica que versión de Windows



- No hagas doble post
Mod ya les hizo merge



¿Siquiera visitaste los vínculos que se te dieron?



Mmm, posible HDD cascado.....

Lo suyo sería sacarlo, conectarlo a otra máquina, recuperar info y comprobar su estado con software adecuado, Cristal disk o Hard disk Centinel, si está en buenas condiciones formater y proceder a instalación limpia.
Saludos.

Puede ser una opción! Pero en lo personal cuando he lidiado con HDD defectuosos, lo que hace es que o no los lee el BIOS POST o simplemente nunca inicia.

Salu2s
329  Sistemas Operativos / Windows / Re: mi pc no para de reiniciarse en: 18 Julio 2015, 17:24 pm
Dos preguntas:
1- Si tu pc no para de reiniciarse ¿como te has conectado?

Vamos, que uno se puede conectar desde un smartphone, tablet, laptop, o incluso desde otra PC



cuando inicio la pc... vuelve a reiniciar... no me deja ponerlo en modo seguro... ni tampoco en sistema de simbolos... he visto el error i es el siguiente: Stop 0x0000007B

como puedo solucionarlo???

¿Que sistema operativo tienes?
¿Has hecho algún cambio en tu ordenador (hardware o software) justo antes que te diera el error?



Refierete al artículo de @Randomize




Puedes recibir un mensaje de error "Stop 0x0000007B" si tu computadora ha sido infectada con un virus en el boot-sector.

También puede ser que el controlador de booteo necesite un driver que no este configurado para iniciar manualmente o esté corrupto.

Puedes tener información en el registro corrupta.

Puedes tener un conflicto de recursos entre el controlador de booteo y otro controlador, o incluso entre dispositivos SCSI.

Puedes pasarte también por aquí:
http://pcsupport.about.com/od/findbyerrormessage/a/stop0x0000007b.htm
https://support.microsoft.com/en-us/kb/324103

Salu2s
330  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Cotactos,amigos o coocidos en: 18 Julio 2015, 16:52 pm
Esta funcionalidad, puede parecer interesante, pero todavía no me convence, quizás con algún otro enfoque (el cual no me viene a la mente ahora) sea interesante, pero creo que con un Social Network plug-in se perdería el concepto de "foro". Al menos no le veo sentido.

No se, es mi opinión, quizás mañana se proponga algo y me agrade el enfoque.

Esperemos a ver que se sigue comentando al respecto

Salu2s

Páginas: 1 ... 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 [33] 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 ... 88
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines