Bennu Game Development

Foros en EspaƱol => Mesa de Ayuda => Topic started by: Packo_z007 on September 19, 2008, 10:49:46 PM

Title: Borrar datos de un fichero.
Post by: Packo_z007 on September 19, 2008, 10:49:46 PM
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.
Title: Re: Borrar datos de un fichero.
Post by: kim-elet-o on September 19, 2008, 10:58:51 PM
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.

Title: Re: Borrar datos de un fichero.
Post by: SplinterGU on September 19, 2008, 10:59:24 PM
para eso, no uses fputs...
usa fwrite...
Title: Re: Borrar datos de un fichero.
Post by: Packo_z007 on September 19, 2008, 11:05:19 PM
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
Title: Re: Borrar datos de un fichero.
Post by: SplinterGU on September 20, 2008, 12:26:11 AM
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...
Title: Re: Borrar datos de un fichero.
Post by: Packo_z007 on September 20, 2008, 12:37:07 AM
Tenes razon con lo del fwrite.Gracias.