Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: matella en 15 Mayo 2015, 12:37 pm



Título: Insertar una nueva línea en un fichero de texto
Publicado por: matella en 15 Mayo 2015, 12:37 pm
Buenas, estoy empezando a programar en C++. Estoy realizando un programa que une 2 ficheros. Primero copio uno de ellos (este fichero está ordenado). A continuación voy leyendo el segundo e insertando cada línea donde corresponde para que que un fichero ordenado.
Ejemplo a pequeña escala, ya que los que pruebo son con 5000 lineas:

  Fichero 1                        Fichero 2                        Fichero Final

1                                           4                                      1
3                                          18                                     3
5                                          13                                     4
6                                                                                  5
7                                                                                  6
10                                                                                7 
                                                                                   10
                                                                                   13
                                                                                   18


Utilizando la función seekp, me logró situar en la posición que tengo que insertar, hasta ahí todo bien.
El problema es que si tengo que insertar el 4 entre el 3 y el 5. Lo que me hace es sobreescribir la línea con lo que queda 4,5 me borra el 3 o 3,4 y me borra el 5.

Lo que quiero saber es si hay alguna forma de que me lo inserte sin sobreescribir lo que hay anteriormente. Un saludo, gracias


Título: Re: Insertar una nueva línea en un fichero de texto
Publicado por: ivancea96 en 15 Mayo 2015, 12:59 pm
Lo que puedes hacer es cargarlo en memoria y luego reescribir el fichero.


Título: Re: Insertar una nueva línea en un fichero de texto
Publicado por: BlackM4ster en 15 Mayo 2015, 13:36 pm
Haz lo q dice ivancea