[C con Clase] Ayuda con el recorrido de un fichero

Davidson, Steven srd4121 en njit.edu
Mie Mar 13 02:47:12 CET 2013


Hola Edinson,

2013/3/12 Edinson Vivas <edinson.vivas en gmail.com>

> Buenas a todos y todas nuevamente, espero esten bien.
>
> Escribo en esta ocacion para ver si puedo obtener alguna idea o ayuda de
> parte de alguno de ustedes.
>
> Quisiera saber como poder buscar y reemplazar una linea de caracteres en
> un archivo ya creado... Mas especificamente un archivo de configuracion
> .cfg...
>
>
Un archivo de texto es muy parecido a una gran cadena de caracteres. El
caso que presentas es que tienes una secuencia de caracteres y quieres
cambiar una subcadena por otra. El problema es el mismo en ambos casos:
reemplazar una subcadena por una de mayor cantidad supondría reemplazar
otros caracteres póstumos que no quieres que sean suplantados. También
puede darse el caso de que la nueva subcadena sea de menor cantidad de la
cadena a reemplazar, por lo que ahora tienes caracteres de la cadena
antigua presentes a continuación de la nueva.

La solución es dejar "hueco" para la nueva subcadena. Esto supone crear
otro fichero de texto para suplantar el original. Los pasos a seguir son:

1. Copiamos todos los caracteres originales al nuevo fichero.
2. Copia la nueva subcadena al final del nuevo fichero.
3. Copia todos los caracteres originales, después de la subcadena a
reemplazar, al nuevo fichero.

Al final, hay que eliminar el fichero original y renombrar el nuevo fichero
con el nombre del fichero original, para que todo aparente ser sin cambios.

Si vas a hacer esto una vez, entonces no veo inconveniente. Obviamente si
tienes que hacer muchas sustituciones, entonces aconsejo leer todo el texto
original del fichero (en memoria) para hacer todas las modificaciones, en
memoria. Cuando ya estés listo para guardar todos los cambios, entonces
simplemente copias la cadena entera a un nuevo fichero, cambias su nombre,
y eliminas el fichero original.


Espero que esto te ayude.

Steven
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20130312/aaa8e2db/attachment.html>


Más información sobre la lista de distribución Cconclase