|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - m0skit0
Páginas: 1 ... 89 90 [91] 92 93 ... 100
2251
« en: Miércoles 24 de Septiembre de 2008, 14:26 »
Una nota: si vas a pasar los parámetros por ensamblador, fíjate bien (como pone Eternal Idol) que tienes que meter los parámetros en la pila en orden inverso a cómo los pide la API (o cualquier función).
2252
« en: Miércoles 24 de Septiembre de 2008, 11:25 »
El icono de cualquier .EXE o .DLL lo puedes sacar con el mismo Visual Studio 2008 (es gratis), en la sección de "resources". No necesitas ninguna API. Y en cuanto a la cadena de texto en memoria, no sé a qué te refieres. ¿La dirección en que se encuentra pertenece a tu programa o es externa? ¿Tienes el puntero a esta cadena? De todas formas lo tuyo suena a virus...
2253
« en: Miércoles 24 de Septiembre de 2008, 11:22 »
En Windows (y en Linux) un programa no puede acceder a direcciones de memoria que no le pertenezcan. Lo que sí puede hacer (que es lo que tú haces en Linux con ioctl) es pedirle al SO que ejecute ciertas acciones. Lo que tú buscas es la API de Windows que modifique esos LEDs: SetKeyboardState() y GetKeyBoardState(). Suerte programando estas llamadas en ensamblador...
2254
« en: Miércoles 24 de Septiembre de 2008, 10:31 »
Para ejecutar una macro VBA cuando se modifique un libro, tienes el siguiente evento: Private Sub Workbook_Change(ByVal Target As Range)
Para cuando se modifique una hoja: Private Sub Worksheet_Change(ByVal Target As Range)
donde Target es un registro con varios valores con información sobre qué ha cambiado (por ejemplo Target.Column o Target.Row te darán la columna o fila de la celda modificada. Como no he comprendido muy bien tu ejemplo, ahí lo dejo.
2255
« en: Miércoles 24 de Septiembre de 2008, 10:25 »
¿Te refieres a acceder al contenido de un TextBox? TextBox.Text
2256
« en: Miércoles 24 de Septiembre de 2008, 10:07 »
Parece muy sencillo... El programa simplemente debe escribir en un fichero (o en el registro) al arrancar Windows. Para que el programa se ejecute solo en el arranque, debes añadirlo o bien al menú Inicio/Programas/Inicio o bien a la clave de registro de arranque (ahora mismo no me acuerdo cuál era, pero una búsqueda en Google y tienes los resultados). En cuanto a ejecutarlo al apagarse, debes tener en cuenta que no es tan sencillo, puesto que si se va la luz desde luego no hay manera de salvar nada. Tendrías que capturar la señal de apague o reinicio de Windows y actuar en consecuencia. Google seguro que tiene algunas respuestas. No temas mirar código de virus y demás bichos puesto que son los más avanzados en estos temas. Un saludo!
2257
« en: Domingo 21 de Septiembre de 2008, 19:03 »
Este foro es de VB6
2259
« en: Viernes 19 de Septiembre de 2008, 22:39 »
Wenas paco Aclararte que no necesitas dos registros iguales, como los que presentas: el nodo paciente definido como: typedef struct tNODO{ Tpaciente paciente: tNODO *sig; }*pNODO,*LISTA;
si yo me defino un nodo de una pila ,lo haría de la siguiente forma: typedef struct tNODOPILA{ Tpaciente paciente: tNODOPILA *sig; }*pNODOPILA,*PILA; Sólo cambias los nombres. Así que con una nos vale, vamos a quedarnos con tNODOPILA Primero vamos a entender qué registros tiene tu tipo de datos tNODOPILA: un dato Tpaciente y un puntero a un tNODOPILA. Si te lo imaginas en memoria, sería un bloque de memoria ocupado por un dato del tipo Tpaciente (que ocupará sizeof(Tpaciente) bytes y un puntero (32 bits, 4 bytes). Ahora bien, nuestro objetivo es conseguir de alguna forma enlazar varias zonas de memoria con estructuras tNODOPILA. ¿Cómo hacemos esto? /*Creamos una variable tNODOPILA*/ PILA = malloc(sizeof(tNODOPILA ));
Ahora tenemos un espacio de memoria reservado para nuestros datos, cuya dirección de memoria está almacenada en PILA. Vamos a insertar un paciente en la PILA: Tpaciente pacienteA; /*Insertamos un paciente*/ PILA->paciente = pacienteA; /*Como sólo tenemos un paciente, no hay siguiente, por lo tanto a NULL*/ PILA->sig = NULL;
Esto para el primer paciente. ¿Pero y el segundo? Si hacemos lo mismo, simplemente sustituiremos uno por otro. Así que evidentemente necesitaremos otro sitio para almacenarlo. ¿Alguien ha dicho malloc()  ? Tpaciente pacienteB; /*Creamos otra variable tNODOPILA*/ pNODOPILA = malloc(sizeof(tNODOPILA ));/*Insertamos un paciente*/ PILA->paciente = pacienteB; /*¿Y el siguiente?*/
Ahora toca relacionar de alguna forma ambas variables tNODOPILA. Utilizaremos el registro sig. Pero, ¿en qué orden enlazamos ambas? Es decir, ¿qué paciente va primero y cuál segundo? Como es una pila, el último en llegar es el primero en pasar (así de injusta es la vida, chavales), así que: /*El siguiente del que acaba de llegar (pacienteB) es el que estaba antes (pacienteA)*/ pNODOPILA->sig = PILA; /*El primero es el que acaba de llegar (pacienteB)*/ PILA = pNODOPILA;
Vale, PILA apunta a pacienteB. Al lado de pacienteB está el puntero al siguiente sig, que es pacienteA, que es último, puesto que sig es NULL. Así ya insertamos toda la cantidad de datos que deseemos. Para quitar un dato, la operación inversa: /*Para acordarnos del primero*/ pNODOPILA = PILA; /*El primero pasa a ser el siguiente del que era primero*/ PILA = PILA->sig; /*Liberamos la memoria ocupada por el dato ya procesado*/
Espero que me haya explicado bien. Cualquier duda, ya sabes: pregunta en otro foro  (es broma)
2260
« en: Viernes 19 de Septiembre de 2008, 10:52 »
Pues venga me he animado Se abre el telón y aparece un pitufo enseñando el culo. ¿Cómo se llama la serie? "Verano azul"
2261
« en: Viernes 19 de Septiembre de 2008, 09:33 »
No entiendo los chistes de m0skit0 Te falta cultura cinematográfica Se abre el telón. Aparece una cama de madera con un cartel que pone 200$. Al lado una de hierro que pone 500$. Se cierra el telón. ¿Cómo se llama la película? La más cara de hierro (¡¡Éste me encanta!!)
2262
« en: Viernes 19 de Septiembre de 2008, 09:23 »
solo que deberias de usar el parametro ByRef para utilizarlo como "puntero" y no estarlo pasando como copia a cada llamado de la funcion Entonces, ¿para qué queremos ByVal? En teoría, no tienes razón: debería pasarse ByVal (por valor) porque no se va a modificar dicho parámetro, así el código queda más claro y entendible (aparte de poder cambiar de valor el parámetro sin que se modifique en el código llamante). En la práctica, tienes razón, porque el código corre más deprisa pasando sólo un puntero (ByRef, por referencia) en vez de hacer la copia de la variable. Lo que me lleva a preguntarles: ¿Qué creen que compensa más: que el código se ejecute más rápido o que sea más legible?
2263
« en: Jueves 18 de Septiembre de 2008, 16:53 »
Me alegro de que funcione. Efectivamente, tienes razón  . Mi confusión radica (aparte de haber dormido 5 horas...) en que yo no lo codificaría de esa manera. Me entero mejor así: while !(c=='n' || c==EOF)
Que es exactamente la misma condición que la tuya si aplicamos la Ley de De Morgan.
2264
« en: Jueves 18 de Septiembre de 2008, 16:05 »
Me encantan estas discusiones Primeramente, tanto una como otra están mal. Se me pasó que de esa manera se leen 2 caracteres diferentes, es decir, la primera fgetc() lee un carácter y la segunda lee el siguiente. Por lo tanto, deberías de hacer un solo fgetc(a) y asignarle el el valor devuelto a un variable y comparar. Una vez aclarado esto, si utilizamos un AND, como tú dices, sería "lee caracter mientras no sea NI final de línea NI final de fichero", es decir, que leerías TODOS los caracteres del fichero, puesto que la condición se cumple sólo cuando sea tanto EOL como EOF, las 2 A LA VEZ, que sólo se cumple al final del fichero (por EOF). Sin embargo, si es un OR, pararía de leer tanto si es EOL como si es EOF, es decir, basta que se cumpla una de las dos, no ambas simultáneamente, que es lo que tú quieres. De hecho, la condición de EOF no tiene razón de ser si el fichero termina con "enter". Espero haberme explicado, que he dormido 4 horas y media
2265
« en: Jueves 18 de Septiembre de 2008, 15:10 »
Tienes mal la condición aquí: #define hastaEOL(a) while((fgetc(a)!= 'n') && (fgetc(a) != EOF))
Así te va a leer siempre hasta el final del fichero, puesto que se tiene que cumplir fgetc(a) != EOF. Como habrás adivinado, tiene que ser: #define hastaEOL(a) while((fgetc(a)!= 'n') || (fgetc(a) != EOF))
Los errores de lógica como estos son muy comunes, así que cuando escribas condiciones con operadores logicos, haz un par de pruebas mentales o por escrito de la condición. ¡Saludos! P.D: para los linuxeros, son ficheros. Archivo  es nomenclatura de MS, que se inventa los términos.
2266
« en: Jueves 18 de Septiembre de 2008, 14:58 »
ANSII C Es ANSI. No te confundas con ASCII
2267
« en: Jueves 18 de Septiembre de 2008, 13:06 »
Yo sigo con mi programación funcional en VB (  ) Public Function InvertirCadena(ByVal str As String) As String If Len(str) <= 1 Then InvertirCadena = str Else InvertirCadena = Right(str, 1) & InvertirCadena(Left(Right(str, Len(str) - 1), Len(str) - 2)) & Left(str, 1) End If End Function
Cuidado con quedarse sin pila XD
2268
« en: Jueves 18 de Septiembre de 2008, 09:59 »
2269
« en: Jueves 18 de Septiembre de 2008, 09:58 »
Éste me encanta de lo rebuscado que está... Se abre el telón. Aparecen todos los personajes de Barrio Sésamo haciendo botellón (bebiendo, básicamente). Todos borrachos, menos Epi, que no ha bebido. Deciden irse y se encuentran un barranco con un puente. Entre todos deciden que sea Epi el que cruce primero, ya que no va bebido. Éste empieza a cruzar y de repente, una gigantesca mano fantasmal aparece en el cielo y se acerca a él. ¿Cómo se llama la película? Epi sobrio primero: la manaza fantasma
2270
« en: Jueves 18 de Septiembre de 2008, 09:48 »
Rebelion.org, gran página... Ojalá hubiera más de esas.
2271
« en: Jueves 18 de Septiembre de 2008, 09:25 »
¿Te sustituye un 'n' en el fichero origen por un NULL (0x00) en la copia que haces? ¿En el primer 'n' que encuentra?
2272
« en: Jueves 18 de Septiembre de 2008, 09:20 »
Si postearas un poco del código que ya tienes, podríamos verlo. Por lo menos las estructuras de datos. Saludos
2273
« en: Miércoles 17 de Septiembre de 2008, 14:28 »
es decir que solo se mueve una casilla..verdad? 8 posibles movimientos..verdad? Exacto si está ocupado por una pieza contraria ,se la come? Efectivamente, siempre y cuando dicha pieza esté desprotegida. En caso de estar defendida por otra pieza (cualquier pieza), el rey no puede moverse a ella. De hecho, el rey no puede moverse a ninguna casilla que esté atacada por una pieza oponente. En caso de que la casilla esté ocupada por una pieza propia, tampoco se puede mover. el enroque ya lo tengo contemplado ¿El largo y el corto? este no es precisamente un foro sobre ajedrez Sí, pero es difícil elegir un foro adecuado para esta pregunta...
2274
« en: Miércoles 17 de Septiembre de 2008, 11:20 »
Los medios de comunicación se guían por sus intereses económicos, y por lo tanto políticos. El presidente de Georgia es un sinvergüenza sin parangón.
2275
« en: Miércoles 17 de Septiembre de 2008, 10:58 »
como si fuesen conceptos filosóficos Jeje, bueno, de hecho un algoritmo es algo totalmente metafísico. Es una forma de resolver un problema, los pasos que hay que realizar y en qué orden y condiciones deben ejecutarse. Cuando lo escribes (ya sea un programa informático o un libro de cocina) pasa a ser algo físico con un nuevo nombre, pero en realidad es plasmar en un medio físico la idea que se tiene de la solución. Un poco como el mundo de las ideas y el mundo real que describia Platón.
Páginas: 1 ... 89 90 [91] 92 93 ... 100
|
|
|