sobrescribir una línea específica en un archivo de texto?
-
11-09-2019 - |
Pregunta
¿Cómo hago para grabar encima de una línea específica en un archivo de texto en C ?. Tengo valores en múltiples variables que deben ser escritos en el archivo.
Solución
Esto sólo funciona cuando la nueva línea tiene el mismo tamaño que el anterior:
- Abra el archivo en el modo de
a+
-
fseek()
al inicio del archivo - Antes de leer la siguiente línea, utilice
ftell()
señalar el inicio de la línea - Leer la línea
- Si se trata de la línea que desea,
fseek()
de nuevo con el resultado deftell()
y utilizarfwrite()
entre reescribir.
Si la longitud de la línea cambia, debe copiar el archivo.
Otros consejos
Desde archivos (desde el punto de vista de la biblioteca estándar de C) no son de línea orientado, pero son sólo una secuencia de caracteres (o bytes en modo binario), no se puede esperar para editarlos en el nivel de línea facilidad.
Como Aaron describe, puede reemplazar, por supuesto, los personajes que componen la línea si su reemplazo es exactamente el mismo recuento de caracteres.
Puede también (tal vez) insertar un reemplazo más corto rellenando con espacios en blanco al final (antes de la terminación de línea). Eso es, por supuesto, un poco crudo.