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 ?
Riesco ad estrapolare le ultime righe volute con questo cod (del mitico oregon se non erro...):

Es. le ultime 500 righe le estrapolo così:

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;
}
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?)

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...