Borrar datos de un fichero.

Started by Packo_z007, September 19, 2008, 10:49:46 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Packo_z007

Buenas. Quiero saber si hay alguna forma de borrar datos de un fichero. Puntualmente lo que quiero hacer es quitar los 2 bytes que agrega fputs al final de cada archivo.
[STRING] *PANIC Too many strings, allocating more space

kim-elet-o

Un metodo para borrar datos de un fichero, es crear un fichero fichero nuevo vacio, poner en el fichero nuevo todos los datos del fichero viejo excepto lo que queremos borrar, borrar el viejo (o por si acaso renombrarlo como fichero backup), y por ultimo cambiar el nombre del fichero nuevo por el nombre del fichero viejo, seguro que hay mas metodos pero este es el mas sencillo.

|/
|\im-elet-o el yayo programador.

SplinterGU

para eso, no uses fputs...
usa fwrite...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Packo_z007

#3
Estaria bueno que hubiese una funcion que haga lo que dice Kim-elet-o. Es decir, borrar los datos de un fichero a partir de un punto. No uso fwrite por que la idea es guardar ficheros binarios. Gracias a los dos.

Edito:
Tambien me gustaria sugerir que si a fputs se le pasara como parametro un dato numerico (int,word,etc),no convierta dicho dato a cadena, sino que guarde el verdadero valor.Por ejemplo:

byte var = 65;
..
fputs(fichero,var); // guarda "A"
fputs(fichero,itoa(var));//guarda 65
[STRING] *PANIC Too many strings, allocating more space

SplinterGU

#4
la "s" del fput, indica string... para lo que queres tenes fwrite...
con respecto a truncar un archivo, no te recomiendo lo hagas solo para sacar los 2 bytes del fputs... es muy costoso y no hay en bennu/fenix la funcion adecuada para hacerlo...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Packo_z007

Tenes razon con lo del fwrite.Gracias.
[STRING] *PANIC Too many strings, allocating more space