C/Visual C - FICHEROS

 
Vista:

FICHEROS

Publicado por Jordi (20 intervenciones) el 01/06/2001 13:41:44
Tengo problemas con los ficheros. Tengo un fichero de TEXTO con datos y quiero añadir nuevas lineas. Para ello utilizo:
if((f=fopen("DATOS.TXT","a"))==NUL) /* ME muestra error*/
else
/*aqui debo guardar un array de tipo char en una nueva linea del fichero*/
/*El array se llama polt*/
fwrite(&polt,sizeof(polt),1,f);
fclose(f);

¿Que estoy haciendo mal? Gracias...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:FICHEROS

Publicado por Jordi (20 intervenciones) el 01/06/2001 13:51:06
He conseguido que me escriba en el fichero pero no en una nueva linea.
LONG=strlen(polt);
fwrite(&polt,LONG,1,f);
¿Que debo hacer para que me cree una nueva linea? Tengo que incluir el "\0".

Gracias de nuevo....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:FICHEROS

Publicado por Joshua Ramirez (43 intervenciones) el 01/06/2001 17:42:35
Tienes que utilizar la sentencia fseek(); para que el puntero al archivo se valla al final de lo que has escrito y asi puedas introducir una nueva linea Ok.

No recuerdo muy bien pero investigalo.

fseek(?,?,SEEK_END) que te mandara al final de lo que has escrito en el fichero.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:FICHEROS

Publicado por Germán B. (143 intervenciones) el 01/06/2001 19:55:30
Te lo escribe al final, porque el archivo está abierto en modo "a". Si lo que necesitás es que sea una línea separada, tiene que estar precedido con un '\n' (carácter de control "nueva línea"). Quizás te convenga, en vez de escribir un '\n' antes de la cadena, finalizar con un '\n' cada cadena que escribas en el texto para asegurar que cualquier cosa que siga estará en una línea siguiente. Para añadir este carácter a cualquier cadena podés hacer así:

strcat(cadena, "\n");

G
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:FICHEROS

Publicado por Elena (2 intervenciones) el 06/06/2001 09:24:47
Para escribir una linea en un fichero puedes usar dos sentencias:

char linea [512];

fwrite (linea,strlen(linea),1,fichero);

Asegurate que linea acaba en \n;

fputs (linea,Fichero);

La diferencia entre una y otra es mínima: fputs no incluye el carácter NULL (\O) al incluir la línea en el fichero y fwrite sí.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:FICHEROS

Publicado por Germán B. (143 intervenciones) el 07/06/2001 19:23:43
fwrite() no incluirá el '\0' en el ejemplo que diste porque la cantidad de bytes a grabar indicada es el resultado de strlen(), que es la longitud del string sin incluir el terminador.
De todos modos, redondeando la idea: fputs() trabaja con strings, es decir que siempre reconoce como fin del dato al '\0'; mientras que fwrite() trabaja con buffers, es decir un bloque de memoria del tamaño que uno indique, sin importar qué hay en los datos.
G
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar