Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Ottimizzare estrapolazione di solo un pezzo della riga desiderata...
Forum - C/C++ - Ottimizzare estrapolazione di solo un pezzo della riga desiderata...

Avatar
tommyprojects2011 (Normal User)
Newbie


Messaggi: 10
Iscritto: 15/01/2011

Segnala al moderatore
Postato alle 17:41
Sabato, 05/03/2011
Con questo codice estrapolo solo le righe del filedaestrapolare.txt con presenze=1° o presenze=0°

codice da ottimizzare:

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <vector>
  5. #include <algorithm>
  6. #include <sstream>
  7. #include <iomanip>
  8.  
  9. #include<stdio.h>
  10. #include<string.h>
  11.  
  12.  
  13. using namespace std;
  14.  
  15. string intToString(int value) {
  16.     stringstream ss;
  17.     ss << value;
  18.     return ss.str();
  19. }
  20.  
  21. string floatToString(float value) {
  22.     stringstream ss;
  23.     ss << value;
  24.     return ss.str();
  25. }
  26.  
  27.  
  28. int main (int argc, char *argv[]) {
  29.  
  30.  
  31.     FILE *a=fopen("filedaestrapolare.txt","r");
  32.     FILE *b=fopen("estrapolazione.txt","w");
  33.     char buf[1024];
  34.    
  35.     while( fgets(buf,1024,a)) if(strstr(buf,"presenze:0°") || strstr(buf,"presenze:1°")   )     fputs(buf,b);
  36.                    
  37.                                        
  38.                     getchar();
  39. fclose(a);fclose(b);
  40.      return 0;              
  41.     }



Ottenendo ad esempio delle righe del tipo:

presenze:1°***combinazione:25***rs: 408 ra: 91 colpirimanenti: 317

io vorrei ottimizzare il tutto in modo da avere,secondo l'esempio..., solo...

25

ovvero sia dovrei estrapolare solo il pezzo della stringa compreso tra "combinazione:" e *

Come potrei modificare il codice soprastante per ottenere ciò?

Grazie infinite a chi me lo dis!

8-)

Ultima modifica effettuata da tommyprojects2011 il 05/03/2011 alle 17:42


cout << "Panta Rei (Eraclito)";
PM
Avatar
lumo (Member)
Expert


Messaggi: 416
Iscritto: 18/04/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 20:08
Sabato, 05/03/2011
Codice sorgente - presumibilmente C/C++

  1. ifstream input( "filedacuiestrapolare.txt" );
  2. string line;
  3. getline( input, line );
  4. size_t pos1 = line.find( "combinazione:" );
  5. size_t pos2 = line.find( '*', pos1 );
  6. string estrapolato = line.substr( pos1, pos2 );


Non l'ho provato ma dovrebbe funzionare. Anche se a dir la verità non mi piace molto D:

Grazie 1000 lumo ma mi indicheresti anche dove posizionarlo all'interno del mio codice? Ho provato in vari modi ma mi da sempre errore... Ancora Grazie! - tommyprojects2011 - 05/03/11 22:16
intanto devi usare le classi del C++ per i file (ofstream e istream) poi con un getline memorizzi il contenuto del file da leggere in una stringa e il resto mi sembra ovvio - carlduke - 06/03/11 11:03
PM