SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: saulillo en Martes 26 de Febrero de 2008, 17:54

Título: Borrar Contenido De Archivo
Publicado por: saulillo en Martes 26 de Febrero de 2008, 17:54
Hola, he estado buscando y no he encontrado solucion a mi problema.

En mi programa tengo un archivo declarado como fstream y en un momento de la ejecucion necesito borrar todo lo q tiene. Borrar el archivo no, sino todo su contenido.

Habia pensado poner algo asi como
Código: Text
  1.  
  2.  
  3. char dato;
  4. AnsiString dato1="";
  5. f1.seekg(0);
  6. dato = f1.get();
  7.  
  8. while(!f1.eof())
  9. {
  10.    f1<<dato1;
  11.    dato = f1.get();
  12. }
  13.  
  14.  

Pero me dice q no se puede usar << en fstream con AnsiString.
Título: Re: Borrar Contenido De Archivo
Publicado por: el_shanky en Miércoles 27 de Febrero de 2008, 01:26
La forma correcta (a mi aprecer) no es insertarle un valor nulo como es el caracter "" (nada) al archivo para sobreescribirlo, mas bien lo podes limpiar con el modo ios::trunc al momento de abrirlo

Código: Text
  1.  
  2. fstream archivo;
  3. archivo.open(&#34;BORRAR.txt&#34;, ios::out | ios::trunc);//donde out abre al archivo como de salida y trunc lo limpia
  4. archivo.close();
  5.  
  6.  

*Auqnue me aprece que si lo abris con la bandera ios::out no ahce falta ponerle el trunc x que lo limpia x defecto.

Ahora si lo queres limpiar en la mitad d un proceso no creo que lo que estes haciendo ste muy bien ya que nunca vas a llegar al eof() si le seguis metiendo "" y vas a tener un archivo de texto zarpado en caracteres nulos que va a parecer "vacio" pero no lo está!

Se me ocurre que lo mejor es cerrarlo y abrirlo como te dije... :S

Spero que te sirva! exitos Si encontras otra menara poasteala! exitos!
Título: Re: Borrar Contenido De Archivo
Publicado por: saulillo en Viernes 29 de Febrero de 2008, 11:37
Cita de: "el_shanky"
Ahora si lo queres limpiar en la mitad d un proceso no creo que lo que estes haciendo ste muy bien ya que nunca vas a llegar al eof() si le seguis metiendo "" y vas a tener un archivo de texto zarpado en caracteres nulos que va a parecer "vacio" pero no lo está!
Suponia que esa manera me iba a dar problemas, pero tenia que probar cosas.

He estado dandole vueltas y no he encontrado otra manera de hacerlo. Y tenias razón, no hace falta ponerle el trunc.

Muchas gracias por la ayuda.
Título: Re: Borrar Contenido De Archivo
Publicado por: pedrow en Jueves 4 de Septiembre de 2008, 14:28
Como se digo, solamente con ios|out, se borra por defecto cuando escribes el contenido que desees¡
Título: Re: Borrar Contenido De Archivo
Publicado por: Eternal Idol en Jueves 4 de Septiembre de 2008, 14:46
Cita de: "pedrow"
Como se digo, solamente con ios|out, se borra por defecto cuando escribes el contenido que desees¡

NO HAGAS SPAM!