PDA

Visualizza la versione completa : [C] Cercare stringa in un file di testo e modificarla


Andres7X
30-05-2010, 09:35
Ho un problema che mi assilla da giorni e che non riesco proprio a risolvere.

Sto scrivendo un programma (per volontÓ mia) che, oltre a fare altre cose, deve cercare una stringa in un file e sostituirla con quella che desidero io.
Ho provato tutte le funzioni possibili per i file, ma probabilmente mi sfugge qualcosa...

Per adesso ho provato a usare la funzione fgets() che legge ogni riga del file e la salva in una variabile apposita. Fino a qui la ricerca all'intero della riga so come farla. Ma poi per sostituire cosa faccio? Ci sono funzioni apposite, o devo scrivere io il codice per farlo? L'idea che mi era venuta Ŕ che potrei utilizzare il primo argomento della funzione fgets() come puntatore all'area di memoria dove c'Ŕ la riga, e modificarla. E' fattibile?

PS. Non sto a postarvi il codice perchŔ farei solo confusione ulteriore.

oregon
30-05-2010, 09:39
Non ci sono funzioni apposite e devi scrivere il codice tu.

Non solo. Se la stringa da sostituire puo' avere lunghezza diversa dalla precedente, allora devi leggere il file originale, riscriverlo su un secondo file con la stringa modificata, eliminare il primo e rinominare il secondo.

Se le stringhe hanno eguale lunghezza, puoi aprire il file in binario e lavorare con la fread/fwrite/fseek in modo opportuno.

linoma
30-05-2010, 09:58
Memorizza il file da dove finisce la parola da sostituire, scrivi la nuova parola, appendi il contenuto letto prima.

Andres7X
31-05-2010, 13:05
Grazie per i consigli, vediamo cosa riesco a combinare :D

Loading