Riesco ad estrapolare le ultime righe volute con questo cod (del mitico oregon se non erro...):Originariamente inviato da lolide
In C++ quindi usi gli fstream ?
hai provato ad andare alla fine del file con fseek o seekg e andare indietro contando il numero di '\n' che trovi ?
Es. le ultime 500 righe le estrapolo così:
Ora però come ho scritto nel primo post avrei necessità di estrapolare le 520 ultime righe togliendo le ultime 20... il tutto in automatico (come posso togliere le ultime 20?)codice:#include <iostream> #include <fstream> #include <string> using namespace std; #define LINEE 500 int main() { ifstream f; f.open("ESTRAZIONI-BARI.txt", ios::binary); int ri=0; f.seekg(-1, ios::end); char c; f.get(c); //APRO FILE CON LE ULTIME RIGHE CHE INTERESSANO ofstream fout; fout.open("ESTRAZIONI-BARI-ULTIME-500.txt"); //--------------------------------------------- while(ri<LINEE) { if(c=='\n') ri++; f.seekg(-2, ios::cur); if(f.fail()) { f.clear(); f.seekg(0, ios::beg); break; } f.get(c); } string line; getline(f, line); getline(f, line); while(!f.fail()) { //scrivo su file ogni linea rilevata fout << line; fout << "\n"; //---------------------------------- cout << line << endl; getline(f, line); //cin.get(); } f.close(); //return 0; }
E se possibile alla fine scomporre in 5 file distinti le diverse 5 "colonne" formate dai numeri intervallati da virgola...
es:
alla fine dei giochi...
il file contenente le righe...
a,b,c,d,e
f,g,h,i,l,
sarà scomposto in...
file1.txt contiene a e f
file2.txt contiene b e g
file3.txt contiene c e h
file4.txt contiene d e i
file5.txt contiene e e l
Grazie agli/alle esperti/e come lolide, oregon ecc...
![]()

Rispondi quotando