elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Eliminar una linea concreta de un fichero
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Eliminar una linea concreta de un fichero  (Leído 2,020 veces)
mester

Desconectado Desconectado

Mensajes: 219


https://www.youtube.com/watch?v=IlY9C6pzxKc


Ver Perfil WWW
Eliminar una linea concreta de un fichero
« en: 7 Noviembre 2015, 23:10 pm »

Hola buenas, no sé como podría borrar una línea entera de un fichero.
Para hacer esto he leido el fichero entero guardando cada línea en un vector de dos dimensiones, saltandome la línea que quería eliminar, y posteriormente eliminando el fichero para crear otro. Pero busco algo más eficiente, para poder hacerlo en ficheros grandes y tal. ¿Como podría eliminar una fila concreta?


En línea

Justicia es dar a cada uno lo que se merece
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Eliminar una linea concreta de un fichero
« Respuesta #1 en: 8 Noviembre 2015, 02:07 am »

Eliminar una fila implica sobreescribir todo lo que está desde el primer caracter de la fila a eliminar.

Así que tienes varias opciones. Una, es la que comentas. Otra, es volcar los contenidos del fichero a otro archivo temporal, y reescribir el fichero inicial.
Para evitar copiar datos 2 veces, puedes crear el nuevo arhcivo, eliminar el antiguo, y cambiar el nombre del nuevo. Pero ahí ya tendrás que hacer uso de librerías como boost, API del SO, u otras, para acceder al sistema de archivos (a parte de "system()").


En línea

mester

Desconectado Desconectado

Mensajes: 219


https://www.youtube.com/watch?v=IlY9C6pzxKc


Ver Perfil WWW
Re: Eliminar una linea concreta de un fichero
« Respuesta #2 en: 10 Noviembre 2015, 00:13 am »

Eliminar una fila implica sobreescribir todo lo que está desde el primer caracter de la fila a eliminar.

Así que tienes varias opciones. Una, es la que comentas. Otra, es volcar los contenidos del fichero a otro archivo temporal, y reescribir el fichero inicial.
Para evitar copiar datos 2 veces, puedes crear el nuevo arhcivo, eliminar el antiguo, y cambiar el nombre del nuevo. Pero ahí ya tendrás que hacer uso de librerías como boost, API del SO, u otras, para acceder al sistema de archivos (a parte de "system()").
Anda, buena solución la de volcar todo en un fichero eliminando la línea que quiero. Con la de veces que he usado el visudo y no se me ha ocurrido eso para mi programa jeje.
Se agadece, otra vez.
En línea

Justicia es dar a cada uno lo que se merece
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como guardar en una variable una linea de un fichero « 1 2 »
Programación Visual Basic
CICOLO_111234 10 4,724 Último mensaje 14 Septiembre 2008, 04:42 am
por cassiani
Saltar de linea al leer de un fichero
Programación C/C++
hari 3 11,246 Último mensaje 14 Julio 2011, 11:53 am
por hari
Guardar cada línea de un fichero en una estructura
Programación C/C++
NathanD 5 3,892 Último mensaje 6 Marzo 2013, 10:14 am
por leosansan
[Ayuda] Leer linea de un fichero en Vb.Net
.NET (C#, VB.NET, ASP)
TMarmol 4 5,105 Último mensaje 19 Octubre 2013, 17:12 pm
por TMarmol
Insertar una nueva línea en un fichero de texto
Programación C/C++
matella 2 2,311 Último mensaje 15 Mayo 2015, 13:36 pm
por BlackM4ster
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines