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ú

Mensajes - Horricreu

#241
Sí, estoy de acuerdo con Littlehorse. Y también me "molesta" cuando respondes con tu ironía: okay. Creo que si te parece una chorrada, no respondas o en su defecto haz una crítica constructiva.

Pero me pareces buen moderador ;)

Saludos :P

PD: todos tenemos que mejorar. Que asco daría ser perfecto.
#242
Eternal Idol, Littlehorse, Karcrack, Hendrix, Skapunky y Novlucker. Votaría algunos que se merecen ser moderador (y no lo digo por mí). ¿Se pueden enviar sugerencias a el-brujo :)?

Creo que estos 6 son los que lo hacen mejor para mí.

Saludos :P
#243
Cita de: Littlehorse en 19 Junio 2010, 21:23 PM
No horricreu, no están bien. Vuelve a leer el hilo completo y analiza todo lo que te he dicho yo y todo lo que te ha dicho Eternal Idol. Estas intentando pasarle a CreateFile una ruta incorrecta y la finalizas correctamente solamente si CreateFile te da un error pero jamas vuelves a llamar a CreateFile nuevamente.

No seria mejor finalizar correctamente la cadena antes de llamar a CreateFile?

Saludos!


¡Ya está solucionado! Gracias Eternal Idol y Littlehorse por vuestra ayuda, he aprendido algo nuevo ;) :xD

Saludos :P

PD:

Código (cpp) [Seleccionar]
#include <windows.h>

int main()
{
        HANDLE hHeap = GetProcessHeap();

        LPSTR lpBuffer = "Escribe la ruta del fichero: ";
        WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), lpBuffer, lstrlen(lpBuffer), 0, 0);

        LPSTR lpFileName = (LPSTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, MAX_PATH);
        DWORD nNumberOfCharsRead = 0;
ReadConsole(GetStdHandle(STD_INPUT_HANDLE), lpFileName, MAX_PATH - 1, &nNumberOfCharsRead, 0);

        lpFileName[lstrlen(lpFileName) - 2] = 0;

HANDLE hFile = CreateFile(lpFileName, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);

if(hFile == INVALID_HANDLE_VALUE) MessageBox(0, "Error", "Error", 0);

else MessageBox(0, "Funciona", "Funciona", 0);

return 0;
}
#244
Cita de: eeprom46 en 19 Junio 2010, 21:31 PM
Perdon que pregunte aca mismo, pero se podria dar un ejemplo simple de como seria la sintaxis en estas dos ultimas ncurses, y SetConsoleCursorPosition().

en ejemplo simple no mucho mas para saber como seria la sintxis, la de SetConsoleCursorPosition() la busque por la msdn pero no hay ejemplos de como usarla

y la ncurses como seria tambien? en que libreria esta?

gracias de antemano!


¿Que no hay ejemplos?

http://msdn.microsoft.com/en-us/library/ms686974(v=VS.85).aspx

Saludos :P
#245
Cita de: Littlehorse en 19 Junio 2010, 21:14 PM
:D, revisa lo que has hecho:

Código (cpp) [Seleccionar]
if(hFile == INVALID_HANDLE_VALUE)//Si CreateFile me devuelve error porque la ruta esta mal
{                                                       
   MessageBox(0,"Error","Error",0); //Imprimo mensaje de error

   lpFileName[lstrlen(lpFileName) - 2] = 0;// Y ahora si arreglo la ruta
}
//Termina el programa


Luego la culpa es de CreateFile  ;D

Saludos!

Ya lo sé, pero los parámetros están bien :)

Saludos :P
#246
Gracias, ya puse esto pero continua sin ir. Vamos a ver, voy a ponerlo con imágenes y todo para que me creáis de que pongo bien la ruta y todo:

Código (cpp) [Seleccionar]
#include <windows.h>

int main()
{
        HANDLE hHeap = GetProcessHeap();

        LPSTR lpBuffer = "Escribe la ruta del fichero: ";
        WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), lpBuffer, lstrlen(lpBuffer), 0, 0);

        LPSTR lpFileName = (LPSTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, MAX_PATH);
        DWORD nNumberOfCharsRead = 0;
ReadConsole(GetStdHandle(STD_INPUT_HANDLE), lpFileName, MAX_PATH - 1, &nNumberOfCharsRead, 0);

HANDLE hFile = CreateFile(lpFileName, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);

if(hFile == INVALID_HANDLE_VALUE)
{
MessageBox(0, "Error", "Error", 0);

lpFileName[lstrlen(lpFileName) - 2] = 0;
}

else MessageBox(0, "Funciona", "Funciona", 0);

return 0;
}


Escribo la ruta:



Y para comprobar que existe:



Luego no es culpa de la ruta :-\ :o

Saludos :P
#247
Es verdad, acabo de depurar y lo dice. Ahora no sé porque aun no va. Escribo la ruta del fichero bien :-\

Saludos :P
#248
Foro Libre / Re: Pasapalabra
19 Junio 2010, 20:10 PM
Cita de: Constance en 19 Junio 2010, 19:09 PM

Jo que rosco tan fácil le ha tocado........así ya se puede....

Uxoricida, ¿sabías esta?

Saludos :P

PD: me gusta la cara que pone cuando dice: regimiento.
#249
Cita de: Eternal Idol en 19 Junio 2010, 17:04 PM
La lectura es correcta, si lo depuras lo vas a ver, el tema es que eso incluye el salto de linea (\r\n) y para el nombre del archivo no es correcto. Ahora lo que tenes que hacer es terminar la cadena antes (hacelo con cuidado y teniendo en cuenta que el usuario puede escribir cualquier cosa).

Ok, ya tengo codificada esta parte según lo que me dijiste de \r\n, pero aun así el programa tampoco va:

Código (cpp) [Seleccionar]
if (lpNumberOfCharsRead > 2)
{
LPSTR lpRealFile = (LPSTR)lpFileName + lpNumberOfCharsRead - 2;
*lpRealFile = 0;
}


Pero, como sabes que incluye \r\n. ¿En la MSDN sale? Te agradecería si me pasaras el enlace donde encontraste esta información :)

Saludos :P
#250
Si hago esto que me dices:

Código (cpp) [Seleccionar]
ReadConsole(GetStdHandle(STD_INPUT_HANDLE), lpFileName, MAX_PATH - 1, &lpNumberOfCharsRead, 0);

No me funciona :-\ Es esto lo que me dices que haga, ¿no?

Saludos :P

EDITO: muestro el código con las correcciones que me habéis dado (sigue sin funcionar :-\):

Código (cpp) [Seleccionar]
#include <windows.h>

int main()
{
LPSTR lpBuffer = "Escribe la ruta del fichero: ";
DWORD nNumberOfCharsRead = 0;

LPSTR lpFileName = (LPSTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, MAX_PATH);

WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), lpBuffer, lstrlen(lpBuffer), 0, 0);

ReadConsole(GetStdHandle(STD_INPUT_HANDLE), lpFileName, MAX_PATH - 1, &nNumberOfCharsRead, 0);

HANDLE hFile = CreateFile(lpFileName, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);

if(hFile == INVALID_HANDLE_VALUE) MessageBox(0, "Error", "Error", 0);

else MessageBox(0, "Funciona", "Funciona", 0);

return 0;
}