C: Escritura en fichero de texto

DiosUniverso

Tengo este codigo:

if ((canal1 = fopen(nombreficherolog, "a")) != NULL) {
fprintf(canal1, "%s\n", ahora2log);
printf ("Se ha grabado en el fichero\n");
} else
printf("No se puede abrir el fichero");

Me crea el archivo con el nombre correcto, entra en el if, y se escribe en la consola "Se ha grabado en el fichero". SIn embargo no escirbe nada y la variable ahora2log tiene texto. Es más he prbado poniendo fputs("pepe", canal1); y tampoco escribe eso. El fichero lo he comprobado y no es de solo lectura...

NO se me ocurre nada :S

Shendraf

¿Has probado a cambiar los permisos de lectura/escritura en el fopen? Cuando hayas terminado de escribir un fichero cierra siempre el canal (fclose)

DiosUniverso

Muchas gracias, eso era lo que fallaba el codigo corregido es así

	if ((canal1 = fopen(nombreficherolog, "a+")) != NULL) {
		fprintf(canal1, "%s\n", ahora2log);
		fclose(canal1);
	} else 
		printf("No se puede abrir el fichero");
DiosUniverso

Ahora tengo otra duda, ¿como hago para enviar a un cuadro de texto (cualquier sitio donde se pueda esciribr en windows: word, msn, bloc d notas lo q sea) una variable de mi programa?

Para hacerlo usaban autoit y este codigo:

#NoTrayIcon
If $CmdLine[0]=0 Then
    MsgBox(0, "Tarjeta no válida", "Esta tarjeta NO es de XXXXXX")
Else
    Sleep(50)
    Send($CmdLine[1])
    Send("{ENTER}")	
EndIf

Pero ahora quiero introducir una funcion o algo para hacer esto desde el mismo programa.

:)

DiosUniverso

Me respondo con la solución

void send(const char *text)
{
    const char *src = text;
    while (*src != '\0')
    {
        UINT vk = VkKeyScanA(*src);
        keybd_event(vk, MapVirtualKeyA(vk, 0), 0, 0);
        Sleep(10);
        src++;
    }
}
pio-

aprovechando el post, como puedo hacer lo mismo k pide #4 pero desde java? por mas que busco no encuentro nada :S

11 días después
Buffoncete

Acabo de venir de vacaciones así que perdona que conteste con 12 días de retraso.

Para hacerlo desde Java tienes que utilizar, a malas, la JNI y cargar las llamadas del kbevent desde la DLL que pertoque.

pio-

#7 muchisimas gracias :D

Usuarios habituales

  • pio-
  • Buffoncete
  • DiosUniverso
  • Shendraf