• Viernes 8 de Noviembre de 2024, 19:20

Autor Tema:  Borrar linea en un archivo  (Leído 5951 veces)

Vndecid

  • Miembro activo
  • **
  • Mensajes: 33
    • Ver Perfil
Borrar linea en un archivo
« en: Lunes 8 de Marzo de 2010, 23:09 »
0
Hola tengo un problemita con C , espero que me puesdan ayudar.

Tengo un archivo con datos .Cada uno de los datos es una linea en el programa asi

1|linea|lalalal|zarazazaraza
2|linea|lalalal|zarazazaraza
3|linea|lalalal|zarazazaraza

la pregunta es COMO hago para borrar del archivo de texto la linea 2 quedando asi

1|linea|lalalal|zarazazaraza
3|linea|lalalal|zarazazaraza

Me esta MATANDO si alguien lo sabe le agradeceria que me contestara...

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Borrar linea en un archivo
« Respuesta #1 en: Martes 9 de Marzo de 2010, 09:08 »
0
O lees todo, le sacas lo que no queres y volves a escribir, o te posicionas en la la linea que queres borrar y escribis lo que continua y truncas el archivo.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Vndecid

  • Miembro activo
  • **
  • Mensajes: 33
    • Ver Perfil
Re: Borrar linea en un archivo
« Respuesta #2 en: Martes 9 de Marzo de 2010, 10:35 »
0
Muchas gracias pero se me fue el dedito :Pdel suprimir
Eso que me dijiste ya lo hice el tema es que quiero actualizar el archivo  o sea dejo el lugar en blanco y eso es lo que no SE como hacer

1|linea|lalalal|zarazazaraza
2|
3|linea|lalalal|zarazazaraza

para despues poner un dato nuevo o sobreescribir pero borrando todo lo demas que TAMPOCO me sale
quedandome los datos superpuestos...:P

1|linea|lalalal|zarazazaraza
2|datonuevodatonuevozaraz
3|linea|lalalal|zarazazaraza

si me decis que para cualquiera de las dos tengo que hacer un archivo nuevo listo ...me quedo tranquilo si hay una manera mas facil...te lo agredeceria ...
Gracias!

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Borrar linea en un archivo
« Respuesta #3 en: Martes 9 de Marzo de 2010, 15:06 »
0
Podes hacerlo cargando todo en memoria siempre que el archivo no sea enorme.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Vndecid

  • Miembro activo
  • **
  • Mensajes: 33
    • Ver Perfil
Re: Borrar linea en un archivo
« Respuesta #4 en: Martes 9 de Marzo de 2010, 16:02 »
0
Veo veo ...Gracias muchas gracias ...

es raro que no exista una manera de usar el backspace en c sobre un archivo pero si me dicen que es asi.....

herzdark

  • Miembro activo
  • **
  • Mensajes: 38
  • Nacionalidad: ar
    • Ver Perfil
Re: Borrar linea en un archivo
« Respuesta #5 en: Domingo 14 de Marzo de 2010, 02:32 »
0
Cita de: "Eternal Idol"
Podes hacerlo cargando todo en memoria siempre que el archivo no sea enorme.
no seria mas productivo q haga un fseek hacia la posicion de la linea, que lea el dato, mueva el puntero de escritura para atras y que guarde la linea modificada?

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Borrar linea en un archivo
« Respuesta #6 en: Domingo 14 de Marzo de 2010, 10:31 »
0
Cita de: "herzdark"
Cita de: "Eternal Idol"
Podes hacerlo cargando todo en memoria siempre que el archivo no sea enorme.
no seria mas productivo q haga un fseek hacia la posicion de la linea, que lea el dato, mueva el puntero de escritura para atras y que guarde la linea modificada?

No se si leiste todo el hilo: "O lees todo, le sacas lo que no queres y volves a escribir, o te posicionas en la la linea que queres borrar y escribis lo que continua y truncas el archivo."

PD. Lo que decis no es suficiente, quedarian dos lineas repetidas de esa manera.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.