Originariamente inviato da KrOW
intanto ti consiglio di cambiare IDE/compilatore (ho perso il conto di quante volte é stata detta questa frase in riferimento al devcpp) ... Poi, potresti postare tutto il codice relativo alla scrittura su file (apertura, loop ecc...)???Graziecodice:// reading a complete binary file #include <iostream> #include <fstream> #include <string> #include <vector> #include <algorithm> #include <sstream> #include <iomanip> using namespace std; ifstream::pos_type size; char * memblock; char * memblock2; char * memblock3; string intToString(char value) { stringstream ss; ss << value; return ss.str(); } int stoint( const std::string &text ) { std::stringstream sstream; sstream << text; int integer; sstream >> integer; return integer; } int main () { //APERTURA FILE TXT ofstream fout; fout.open("ritardi-quartine-senza-cout.txt", ios::app); //--------------------------------------------------- vector<string>token; string valorestringa =""; string stringaquartina; string stringaestrazione; vector <string> compara; int ritardo; vector <int> ritardi(2); int n; n=0; string stringaquartinasingola=""; string stringaestrazionesingola=""; string testo,estratta; vector<string> token1; vector<string> token2; int inizio,fine,i,lparola; bool continua; testo = stringaestrazione; stringaquartinasingola=""; vector<string> estrazioni; vector<string> quartine; vector<string> confronta; vector<int> confrontainteri; int occorrenza=0; ritardo=0; int g=0; ifstream file2 ("estrazioni.txt", ios::in|ios::binary|ios::ate); if (file2.is_open()) { size = file2.tellg(); memblock2 = new char [size]; file2.seekg (0, ios::beg); file2.read (memblock2, size); file2.close(); for (int i=0; i<size;i++) { //cout << memblock[i]; valorestringa = intToString(memblock2[i]); stringaestrazione += valorestringa; } cout << "\n\n"; cout << "carico estrazioni in memoria..."; cout << "\n\n"; cin.get(); testo=stringaestrazione; continua = true; inizio = -1; /*1*/ while(continua){ fine = testo.find(',',inizio+1); /*2*/ //fine = testo.find(',',inizio+1); // ultima parola if(fine==-1){ /*3*/ continua = false; fine = testo.length(); /*4*/ } // Estrazione parola lparola = (fine-inizio)-1; /*5*/ estratta = testo.substr(inizio+1,lparola); /*6*/ token1.push_back(estratta); /*7*/ inizio = fine; /*8*/ } } cout << "\n\n"; cout << "\n\n"; ifstream file3 ("quartine.txt", ios::in|ios::binary|ios::ate); if (file3.is_open()) { size = file3.tellg(); memblock3 = new char [size]; file3.seekg (0, ios::beg); file3.read (memblock3, size); file3.close(); for (int i=0; i<size;i++) { valorestringa = intToString(memblock3[i]); stringaquartina += valorestringa; } cout << "\n\n"; cout << "carico quartine in memoria..."; cout << "\n\n"; cin.get(); cout << "Inizio elaborazione..."; testo=stringaquartina; continua = true; inizio = -1; /*1*/ while(continua){ fine = testo.find(',',inizio+1); /*2*/ // ultima parola if(fine==-1){ /*3*/ continua = false; fine = testo.length(); /*4*/ } // Estrazione parola lparola = (fine-inizio)-1; /*5*/ estratta = testo.substr(inizio+1,lparola); /*6*/ token2.push_back(estratta); /*7*/ inizio = fine; /*8*/ } } for (int a=0; a< token2.size(); a++) { if (a%4==0) { quartine.clear(); confronta.clear(); confrontainteri.clear(); } quartine.push_back(token2[a]); if (quartine.size()==4) { for (int y=0; y<quartine.size(); y++) { for (int a=0; a< token1.size(); a++) { if (a%5==0) { estrazioni.clear(); confronta.clear(); confrontainteri.clear(); } estrazioni.push_back(token1[a]); if (estrazioni.size()==5) { estrazioni[0].replace(0, 2, ""); confronta.push_back(estrazioni[0]); confronta.push_back(estrazioni[1]); confronta.push_back(estrazioni[2]); confronta.push_back(estrazioni[3]); confronta.push_back(estrazioni[4]); confronta.push_back(quartine[0]); confronta.push_back(quartine[1]); confronta.push_back(quartine[2]); confronta.push_back(quartine[3]); for (int j=0; j<confronta.size(); j++) { int confrontaintero = stoint(confronta[j]); confrontainteri.push_back(confrontaintero); } cout << "\n\n"; int contadoppioni=0; sort(confrontainteri.begin(),confrontainteri.end()); int MISURAVECTOR; MISURAVECTOR=confrontainteri.size(); for (int i = 0; i < MISURAVECTOR-1; i++) { if (confrontainteri[i] == confrontainteri[i+1]) { contadoppioni++; } else { } } if (contadoppioni==1) { ritardo++; if (ritardo > ritardi[0]) { ritardi[0]=ritardo; } ritardi[1]=ritardo; } else if (contadoppioni==2) { ritardo=0; ritardi[1]=ritardo; } else if (contadoppioni>=3) { ritardo=0; ritardi[1]=ritardo; } else { ritardo++; if (ritardo > ritardi[0]) { ritardi[0]=ritardo; } ritardi[1]=ritardo; } } for (int y=0; y<estrazioni.size(); y++) { } for (int y=0; y<quartine.size(); y++) { } } if (ritardi.size() !=0) { //SCRITTURA FILE TXT fout << quartine[0] << flush;; fout << ","; fout << quartine[1] << flush;; fout << ","; fout << quartine[2] << flush;; fout << ","; fout << quartine[3] << flush;; fout << "---"; fout << " RA: "; fout << ritardi[1] << flush;; fout << "---"; fout << " RS: "; fout << ritardi[0] << flush;; //--------------------------------------------------- } ritardi[0]=0; ritardi[1]=0; quartine.clear(); confronta.clear(); confrontainteri.clear(); ritardo=0; } } } //CHIUSURA FILE TXT fout.close(); //--------------------------------------------------- cout << "fine elaborazione"; cin.get(); }
Ciao
![]()

Rispondi quotando