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


 


Tema destacado: ¿Usas Skype? Protégete de los Skype Resolver


  Mostrar Mensajes
Páginas: 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ... 35
11  Programación / .NET / Re: Problema con un string en: Ayer a las 18:13
Quería decir que te asegures que tiene contenido, que no ha quedado desierto. Si es un vector, que su contenido tiene al menos un índice, etc...

Como se puede saber cual es el contenido de cada variable con Visual Studio?
Cuando ejecutas el código en vez de ejecutarlo con F5, lo ejecutas con F11 (paso a paso)... para no extenderme:
https://msdn.microsoft.com/es-es/library/y740d9d3.aspx


El ejecutarlo paso a paso funciona tambien con los formularios? O se para cuando se termina de cargar los controles?
Sí... Hay una carga inicial, donde se ejecuta sin pararse, típicamente si lo has puesto en modo Release, o Debug, antes lo compilará, por si hay errores que impidan la ejecución, luego irá al punto de entrada del proyecto y ahí, se para la ejecución. en un formulario, por ejemplo si no hay código en el LOAD, entonces saltará toda la interfaz de golpe (porque no hay código (del usuario) antes, donde pueda pararse, en ese caso, se parará cuando pulses algo de la interfaz (teclado, ratón, etc...)... por ejemplo en un botón (si tiene código asociado tal botón, claro). Incluso si tienes código asociado un evento MOUSEMOVE de un control o un evento Resize del formulario y tu estás cambiando el tamaño, salta a dicho evento y ahí para..
Con cada pulsación de la tecla F11, ejecuta una línea de código (en realidad una sentencia, ya que la misma puede estar partida en varias líneas (o como en el caso de VB, haber varias en una sola línea separadas por ':'.

Una vez que el depurador está parado en un punto, puedes seleccionar una variable (del tipo que sea, incluso un objeto o un array), y dejando un tiempito el cursor sobre la selección, muestra un iconito para desplegar y ver propiedades y valores. También pinchando con el otro botón del ratón, emerge un menú con opciones puedes desde ir a la definición de dicha variable, hasta pedirle que muestre el valor actual, o pedirle que quieres hacer un punto de interrupción de esa variable cuando se cumpla tal condición (abriría una ventana para indicar la condición, por ejemplo: V = 25, ó V = K, etc...)

...pero esto no es nuevo, esto viene de lejos, ni siquiera de Visual Studio 6.0, esto viene de los años 80... cuando Visual Studio ni siquiera estaba en la mente de nadie, cuando aún se tiraba de por ejemplo QuickBasic... y no ha cambiado significativamente, desde entonces... es mucho más completo, pero en esencia sigue siendo casi igual.

Un punto de interrupción incondicional se establece sobre una línea, del siguiente modo: lleva el cursor a la línea deseada, pulsa la tecla F9, verás que cambia el color de la línea que queda resaltada y a su derecha un puntito, marca lo que es (un punto de interrupción), pulsando en dicho punto, tiene el mismo objeto, quitar/poner el punto de interrupción. Estos puntos de interrupción son adecuados cuando no quieres estar paso a paso, si no sólo hasta llegar a ese punto, entonces ejecutas el código con F5, y cuando llegue a esa línea se detiene, luego para avanzar entre líneas, pulsas F11... cuando hayas resuleto dudas, continuas con F5, hasta que llegues a otro punto que desees detenerte y probar bien.  Se puede incluso ver la pila de llamadas en curso...

Hay mucho que explorar, mírate el menú DEBUG.... en profundidad...experimenta, hasta que tengas dominio de ello.

Te busco un vídeo, a ver si encuentro alguno, será más sencillo que escribir aquí 300 líneas de explicaciones.

Otro enlace:
https://msdn.microsoft.com/es-es/library/ms173083(v=vs.90).aspx
Vídeos:
https://www.youtube.com/watch?v=C0vDKXIq_9A
https://www.youtube.com/watch?v=QCPt9aOcd98
https://www.youtube.com/watch?v=u-HdLtqEOog
https://www.youtube.com/watch?v=rsfi68hR6vw
Estos están en inglés, no importa que si no lo entiendes, basta con que observes, ...aunque bueno, veo de buscarte alguno en español, también, solo que se enrrollan demasiado en explicaciones peregrinas en vez de ir al grano:
https://www.youtube.com/watch?v=KUhJmtgrk3k
https://www.youtube.com/watch?v=Ew5XAAJbGKI
https://www.youtube.com/watch?v=ayAv-EPCfk0
Tras ver un vídeo, a la derecha en la página siempre en las sugerencias salen muchos más relacionado con lo mismo... date un baño de vídeos, pierde 4 ó 5 horas viéndolos y ponlos en pausa, y prteactica tú mismo en tu equipo...

No te preocupes si en el vídeo sale un VS de una versión de VS distinta a la que tu tengas instalada, ya te digo que no ha cambiado sustancialemtne en los últimos 30 años... con decirte que para mí el 'asombro' más grande es que antes la ejecución paso a paso era con F8 (en VS 6.0) y ahora (desde NET) es con F11  :laugh: :laugh:
12  Seguridad Informática / Análisis y Diseño de Malware / Re: Hay alguna manera de meter un virus espía a una foto para enviarselo a alguien? en: Ayer a las 17:36
Un virus puede esconderse en cualquier parte... pero eso no debe llevar a la creencia de que 'desde ahí', pueda ejecutarse.
Sólo puede ejecutarse si algo ejecutable lo hace. Si está oculto dentro de datos, no hace nada, los datos por si sólo son 'materia muerta, inactiva'. Los datos nunca 'tienen el control', siempre son 'usados'...
13  Programación / Programación General / Re: ¿Como programar un depurador avanzado? en: Ayer a las 00:19
Créeme, no te compliques con tonterías, escribirás código infinito y siempre habrá errores imperceptibles y será muy lento, largo y complejo. cualquier cambio te dará una pereza enorme.

Describe tu lenguaje en notación BNF, luego te será tremendamente sencillo tratar semántica y sintaxis, incluso el mismo lenguaje ampliado te vale hasta para colorear (si asocias colores a cada identidad individual).

Lo mejor del BNF, es que puedes adaptarlo a tus necesidades e incluso sirve como ayuda para los usuarios al mostrar el BNF de tu lenguaje, pués sirve para saber qué se puede y qué no se puede hacer en él...

He editado mi mensaje anterior, para extenderme un poco y con más explicaciones...

Te adjunto, un ejemplo de como se describió, por ejemplo el lenguaje Algol 60, menos potente que el Algol 68, pero te sirve de ejemplo:
https://web.archive.org/web/20060925132043/https://www.lrz-muenchen.de/~bernhard/Algol-BNF.html



-----------------------------
----------------------------
Mensaje ORIGINALMENTE publicado en: Fecha del día 23 de mayo (por la tarde, hora de España) -------------
Me he molestado en buscar la especificación del EBNF (Extended-BNF), es más legible, cuando se describe en EBNF, que en BNF y las descripciones son más breves. Otra ventaja es que el analizador léxico, queda mucho más aproximado con EBNF.
El enlace de descarga (dentro del zip está el pdf):
http://standards.iso.org/ittf/PubliclyAvailableStandards/s026153_ISO_IEC_14977_1996(E).zip

Dado que (BNF) es tremendamente sencillo usarlo (bastan unas pocas horas para entenderlo bien), luego puedes ampliarlo y adaptarlo a tus necesidades.

MOD: Ya deberías saber que debes hacer doble post.

--------------------------------------------------------

Mensaje para el MOD: Por doble post, yo entiendo duplicar el mismo contenido de un mensaje en otra parte del foro (ya sería feo, hacerlo en el mismo sitio). Publicar un mensaje un día y otro mensaje otro día (aunque no haya un mensaje de nadie por medio, en le mismo hilo, JAMAS podré entenderlo como hacer doble post... la razón es muy simple: EDITAR un mensaje, no avisa a los interesados del cambio, publicar un nuevo mensaje posiblemente se vea, en cualquier caso son publicaciones distintas.
Por otro lado, determinados foros, reúnen en un mismo mensaje dos mensajes publicados por la misma persona en el mismo hilo, si no ha pasado cierta cantidad de tiempo, al momento de enviar.

Yo acostumbro a escribir mi mensaje y salvo que ponga código y crea conveniente repasarlo para corregir algún posible error, salto a otro lado, sin llegar a ver si hizo una u otra cosa. Los automatismos del foro, no me competen, creo que hay cierta capacidad de control desde el panel de administración del foro... y supongo que estará en las opciones que dueño del foro, le haya parecido más aceptable.
14  Foros Generales / Foro Libre / Re: IBM revela su procesador cuántico más potente en: 22 Mayo 2017, 23:01
Hombre decir eso y no decir nada es lo mismo. Algo se podrá hacer.
De momento no, porque necesitan profundizar en la tecnología, y sobretodo hacerla más fiable y diseñar soluciones para poder programarlo. De momento, sólo han creado los qubits, es decir han logrado la miniaturización adecuada para escribir y leer y punto (salvo que nos oculten información que seguramente sea así). Ahora tendrán que empezar a pensar en sistemas de controlar los qubits (para que sean fiables) y fnalmente pueda programarse.

Comparativamente es como cuando a mediados de los años 50, se lograron hacer chips de unas pocos biestables... (aún guardo alguna revista de aquellos hitos, que aparecían de cuando en cuando perdidos en algunas revistas de electónica).

Cuando se afiance la tecnología 16 qubits, sería una potencia de cálculo enorme, mucho mayor (unas 1000 veces) que la actual con los modernos procesadores de 64 bits... a 3-4Ghz. pero eso cuando se afiance... Es la diferencia entre hacer un motor de explosión en el garage de tu casa que tienes algún torno y producir en serie motores en una fábrica... Sin duda tu te sentirías orgulloso, solo con que las piezas de ese motor encajaran entre si, aunque luego ni siquiera arrancara, o arrancara pero por efecto del calor se derritiera alguna pieza y tal... démosle tiempo, 10 añitos dan para mucho.
15  Programación / Java / Re: Abrir archivo, leer datos y modificarlos en otro archivo. en: 22 Mayo 2017, 22:43
Nota que describo dos funciones traducir... hay sobrecarga...

Una traduce un texto, la otra traduce un fichero (y lo guarda en otro).
Pero si te produce confusión, puedes explicitar un nombre diferente para cada una:
TraducirFichero(...)
TraducirTexto(...)
16  Programación / Programación General / Re: ¿Como programar un depurador avanzado? en: 22 Mayo 2017, 22:24
La notación "Backus Naur Form", es un metalenguaje que se utiliza para describir lenguajes, de ahí es tremendamente fácil verificar errores.

Si tienes descrito, por ejemplo:
<numero> = <numero> <digito>
<digito> = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
entonces resulta tremendamente fácil verificar que FF, no es un número y sí 135. Pero si describes:


<separador> = [[<separador>]] <espacio> | <tabulador>
<espacio> = " "
<tabulador> = "    "
<numero> =  <separador> (<numerodecimal>| "h" <numerohexadecimal>)
<numerodecimal> = [[<digitodecimal>]] | <numerodecimal> <digitodecimal>
<numerohexadecimal> = [[<digitohexadecimal>]] | <numerohexadecimal> <digitohexadecimal>
<digitodecimal> = <digito>
<digitohexadecimal> = <digito> | <digitohex>
<digito>   = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
<digitohex> = "A" | "B" | "C" | "D" | "E" | "F" | "a" | "b" | "c" | "d" | "e" | "f"

Es fácil ver si un número cumple las normas y si en ese caso es decimal o hexadecimal, etc... por ejemplo: 135, hFF, y por ejemplo es fácil ver que hFFJ no es un número ni decimal ni hexadecimal, así como tampoco 134p0, pero no hemos definido un número decimal, por ejemplo 234'456.

Como se puede ver, ahí está definido que es un número, y se puede ver que acepta números decimales y hexadecimales y es relativamente fácil verificar.
Básicamente hay que escribir una función por cada definición, que chequea sus partes llamando a su vez a cada una de las funciones de las partes de que se compone... (hasta llegar a la básica que son letras, digitos, etc... cuando una funciópn devuelva false, se señala el punto donde está operando y se marca el error (cada función conoce por la expesión que trata, en qué consiste el error).

Igualmente es relativamente fácil describir, operadores, operaciones, funciones, propiedades, clases, etc...


Cuando se cambia de línea se verifica la que se acaba de editar. Además se puede (si es correcto) al final si se detecta una construcción especial, autocompletar partes de esa construcción, o sugerir opciones... al tiempo que si es incorrecto, señalar que falla.

Si nunca has oído hablar de ello, será por que nunca has estudiado teoría de compiladores.

p.d.: Un poco más completo, para ver mejor la potencia del sistema BNF. Tú mismo puedes describir las reglas de tu propio BNF, que eso lo hace además insuperable.
17  Programación / Programación General / Re: ¿Como programar un depurador avanzado? en: 22 Mayo 2017, 18:49
Si declaraste tu lenguaje en un formato BNF, (o EBNF), no debería serte complicado chequear la semántica ni la sintaxis.

de hecho, eso te servirá luego para poderlo compilar, pués esa fase será necesaria (suponiendo que el lenguaje sea compilable e/(o no sólo) interpretado).
18  Seguridad Informática / Criptografía / Re: cómo funciona basicamente el descifrado (mediante crackeo) en general? en: 22 Mayo 2017, 18:44
Básicamente hay dos formas:
- Prueba y error (hasta que dé acierto, o te canses)
- Puro analisis (de las claves generadas y del algoritmo que las genera). A veces contienen fallos, nada obvios pero que facilitan resolver claves. Una forma fácil de analizarlas es usar claves en la forma: "AAAAAA", "ABCDEFG", para cifrar conteniedo como AAAAAAAAAAAAA... y ver qué resultado cifrado arroja.
- Mezcla de ambas. Si por análisis puedes deducir ciertas partes, luego una fase de prueba y error puede ser considerablemente más corta.
19  Foros Generales / Dudas Generales / Re: Que lenguaje me recomendais para empezar? en: 22 Mayo 2017, 18:01
Para empezar, C, no me parece el lenguaje más adecuado... lleva una curva de aprendizaje bastante larga.
En general, si vas a aprender por tí mismo, si tras cierto tiempo, no logras avances significativos, es muy fácl que te desmoralice. Como mínimo, empieza con C#, es la misma filosofía, pero con poco puedes tener resultados y esa sensación de comprender, aprender y avanzar te da energía para seguir adelante...

Incluso te recomendaría Visual Basic, para empezar, luego que comprendas algunos fundamentos básicos y logres idear cosas y ver que eres capaz de llevarlas a cabo correctamente, puedes saltar (con más conocimiento), hacia otro lenguaje si lo ves necesario.

Para comenzar, lo ideal es hacerlo con un lenguaje que te enseñe lo básico, sin exigirte demasiado conocimiento previo...
20  Programación / .NET / Re: Problema con un string en: 22 Mayo 2017, 17:44
Vuelta a lo mismo... Qué contiene ese fichero????

Tu problema seguramente yace en el contenido dle fichero, y que se refleja luego aquí:
Código:
string[] numbers = Regex.Split(texto, @"\D+");
            foreach (string value in numbers)
foreach ... value = 0 strings?. Seguro que Regex, no devolvió un array vacío???
Al menos saca por consola, qué contiene value, incluso si numbers.lenght es mayor que 0... Son preguntas demasiado tontas, cuya solución deberías ser capaz de resolver por tí mismo.
Visual Studio, es muy potente, tiene muchas facilidades para saber en cada momento, cual es el contenido de cada variable, puedes ejecutar paso a paso, puedes poner puntos de interrupción incondicionales (líneas), o condicionales de modo que cuando se cumpla la condición se pare ahí en ese punto la ejecución... revisas que debiera tener y si es preciso, moverte paso a paso por instrucciones hasta ver dónde ocurre el fallo.

Creo que lo que te pasa es que no conoces ni de lejos el IDE de Visual Studio (examina el menú DEBUG, que sea tu amigo íntimo, más que éste foro, ahí tienes infinidad de respuestas inmediatas), sin mencionar claro está el lenguaje, que ahí es natural que no quede todo claro.... pero con las facilidades que ofrece el IDE, encontrar ciertos errores es sumamente fácil...
Páginas: 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ... 35
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines