PDA

Visualizza la versione completa : [C++] Eliminazione righe contenenti una parola da file di testo


LoSciacallo
10-11-2008, 20:01
Salve a tutti, sono nuovo, volevo chiedervi qualche informazione su un programma.

Dovrei creare un programma in C o C++ che legga un file di testo con estensione txt, una volta letto devo riuscire a cancellare tutte le righe che contengono una determinata sequenza di caratteri, chiamiamoli xxx.
Praticamente ipotizzando che il file sia il seguente:

---
pippo pluto topolino
casa cane
123 45 xx
abc xxx
xxx macchina
------

Il programma mi dovrebbe cancellare solo le ultime 2 righe.

Sapete darmi qulalche consiglio su come procedere?

Grazie a tutti

oregon
10-11-2008, 20:06
Leggi linea per linea e scrivi un secondo file con quello che ti interessa riportare, evitando quelle parti che non vuoi mantenere.

Alla fine avrai due file: l'originale, che eliminerai dal disco, e il secondo file con le informazioni che volevi, che rinominerai in modo da fargli avere lo stesso nome dell'originale.

LoSciacallo
10-11-2008, 20:17
Non c'è qualche funzione o modo per cancellare una linea al posto di salvare quelle che non contengono quella serie di caratteri?

Mi spiego meglio, in realta le frasi contenute nel file son piu lunghe, quindi andare ad escludere le parole non mi servirebbe perchè per esempio mi rimarrebbero cmq le ultime 2 frasi con scritto:

abc
macchina

al posto di

abc xxx
xxx macchina

Invece dovrei eliminare tutta la riga

oregon
10-11-2008, 20:24
Non esiste una funzione di cui parli ... e non capisco la difficolta' di cui parli ... puoi eliminare, caratteri, parole, righe ... basta che non le riscrivi nel secondo file.

LoSciacallo
10-11-2008, 20:27
ok, mi potresti dire come fare ad eliminare una riga?

Cioè elimare quella riga se e solo se contiene quei caratteri

Grazie

oregon
10-11-2008, 20:37
Te l'ho gia' detto ... semplicemente, la leggi dal primo file e non la scrivi nel secondo file ...

LoSciacallo
10-11-2008, 20:46
Ok, leggerla da un file ci sono, copiarla su un altro idem,
posso chiederti in termine di codice come posso fare a dirgli che se in quella riga è presente la parola "xxx" che non me la deve copiare sull'altro file?

oregon
10-11-2008, 20:52
La funzione

strstr
http://www.cplusplus.com/reference/clibrary/cstring/strstr.html

consente di cercare una stringa all'interno di un'altra.

Cerchi la stringa che vuoi in quella letta e decidi di riscrivere o meno a seconda del risultato di tale confronto.

LoSciacallo
10-11-2008, 21:09
In questo caso però devo sapere a priori la prima stringa da controlalre giusto?

oregon
10-11-2008, 21:10
Che vuoi dire? La stringa da cercare la devi conoscere ...

Loading