sovrascrivendo una riga specifica in un file di testo?
-
11-09-2019 - |
Domanda
Come posso fare per sovrascrivere una linea specifica su un file di testo in c ?. Ho valori in più variabili che devono essere scritti sul file.
Soluzione
Questo funziona solo quando la nuova linea ha le stesse dimensioni di quello vecchio:
- Aprire il file nella modalità
a+
-
fseek()
per l'inizio del file - Prima di leggere la riga successiva, usare
ftell()
notare l'inizio della linea - Leggi la riga
- Se è la linea che si desidera,
fseek()
ancora una volta con il risultato diftell()
e utilizzarefwrite()
sovrascriverlo.
Se la lunghezza della linea cambia, è necessario copiare il file.
Altri suggerimenti
Da file (dal punto di vista della libreria standard di C) non sono line-oriented, ma sono solo una sequenza di caratteri (o byte in modalità binaria), non si può aspettare di modificarli a livello di linea di facilmente.
Come Aaron descritto, si può ovviamente sostituire i caratteri che compongono la linea se la sostituzione è esattamente lo stesso numero di caratteri.
È possibile anche (forse) inserire una sostituzione più corto di imbottitura con spazi bianchi alla fine (prima che il terminatore di linea). Questo è, naturalmente, un po 'grezzo.