PDA

Visualizza la versione completa : [C++] Trovare ed eliminare righe che iniziano con stringa specifica


freetom
12-11-2009, 20:08
Ho un corposo file txt pieno di righe del tipo

presenze:1 - 1,2,3,4,5,6
presenze:0 - 1,3,4,5,7,8
presenze:0 - ecc...
presenze:0 - ecc...
presenze:2 - ecc...
presenze:1 - ecc...
ecc...

Io vorrei poter eliminare con un apposito cod tutte le righe "presenze:0"

E' possibile farlo rapidamente con c++?
Se si come?

GRAZIE

:ciauz:

oregon
12-11-2009, 21:09
Leggi tutto il file, riga per riga, e scrivi un secondo file solo con le righe che ti interessano.

MacApp
12-11-2009, 22:06
vai di grep:


$ cat presenze_originale.txt | grep -v "presenze:0 - " > presenze_filtrato.txt

;-)

oregon
12-11-2009, 22:26
Penso che, piuttosto che un problema contingente da risolvere, sia un semplice esercizio di programmazione da risolvere in C/C++ ...

freetom
12-11-2009, 23:26
Originariamente inviato da MacApp
vai di grep:


$ cat presenze_originale.txt | grep -v "presenze:0 - " > presenze_filtrato.txt

;-)

Esattamente come e dove andrebbe posizionata questa potente riga? :stordita:

Io per adesso l'ho posizionata cos... :fagiano: :




ifstream fin("PUNTI-0-TROVATIparte1.txt");
if (fin) {
string s;
while(fin) // cattura tutti gli errori.
{
getline(fin,s);

cout << s;

//prova scrematura...
$ cat PUNTI-0-TROVATIparte1.txt | grep -v "presenze:0 - " > presenze_filtrato.txt
//-------------------

vec.push_back(s);
}
}



cout << "\n\n\n";
cout << "Press ENTER to continue...x CHIUDERE..." << endl;
cout << "\n\n\n";
cin.get();
//return 0;


}




Ma non mi funzia... :bh: :dh: :D

Grazie

Un saluto a tutti/e :)

MItaly
12-11-2009, 23:40
:biifu:
Quello che ti stata suggerito non codice C++, un comando da dare da console che funziona su sistemi Unix like (o sui sistemi Windows su cui stato aggiunto grep).

MacApp
13-11-2009, 03:46
Originariamente inviato da freetom

Ma non mi funzia... :bh: :dh: :D

Se devi risolvere una contingenza allora procurati un grep per il tuo sistema operativo (per i sistemi unix like, ad esempio: linux, mac e le varie BSD c'e' di default), studiati un po' i comandi di base da terminal, shell o console ed applica l'efficientissima soluzione che ti ho proposto, altrimenti se un esercizio che devi svolgere in C++, ti consiglio di partire da un progetto meno impegnativo, ripartendo dalla prima pagina del libro che stai studiando.

Se ti incurioscisce grep, considera anche sed e awk tenendo d'occhio l'espressioni regolari.
;-)

oregon
13-11-2009, 10:33
Originariamente inviato da freetom
Ma non mi funzia... :bh: :dh: :D



Ecco fatta la frittata ... :D

freetom
13-11-2009, 19:32
Originariamente inviato da MacApp
Se devi risolvere una contingenza allora procurati un grep per il tuo sistema operativo (per i sistemi unix like, ad esempio: linux, mac e le varie BSD c'e' di default), studiati un po' i comandi di base da terminal, shell o console ed applica l'efficientissima soluzione che ti ho proposto, altrimenti se un esercizio che devi svolgere in C++, ti consiglio di partire da un progetto meno impegnativo, ripartendo dalla prima pagina del libro che stai studiando.

Se ti incurioscisce grep, considera anche sed e awk tenendo d'occhio l'espressioni regolari.
;-)

Mi sapresti consigliare una distribuzione o pacchetto che possa far girare run time su un sistema xp se esiste?

Senza dover installare un s.o su una macchina per intenderci...?

GRAZIE infinite

:ciauz:

oregon
13-11-2009, 20:34
Originariamente inviato da freetom
Senza dover installare un s.o su una macchina per intenderci...?


Temo di non capire la richiesta ... parliamo sempre di programmazione C++ ... ? :)

Loading