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++ - Troncatore di stringhe di un file
Forum - C/C++ - Troncatore di stringhe di un file

Avatar
evox (Normal User)
Newbie


Messaggi: 3
Iscritto: 18/03/2010

Segnala al moderatore
Postato alle 14:22
Giovedì, 18/03/2010
Raga ho un problema...devo realizzare un programma in C++, che prende in input un file .txt (di grosse dimensioni circa 500.000 linee), però questo file .txt ha una particolarità è come se fosse scritto su 3 colonne vi prendo un esempio:
180mila    180mila    PRO-NUM
18mila    18mila    DET-NUM-CARD
18mila    18mila    PRO-NUM
200mila    200mila    DET-NUM-CARD
200mila    200mila    PRO-NUM
20mila    20mila    DET-NUM-CARD

ora da questo file devo creare un altro file .txt in cui sia presente soltanto la seconda colonna.
Avete qualche idea di come possa realizzarlo?
Grazie per l'aiuto.

PM Quote
Avatar
evox (Normal User)
Newbie


Messaggi: 3
Iscritto: 18/03/2010

Segnala al moderatore
Postato alle 14:29
Giovedì, 18/03/2010
ora vi faccio vedere un pò di codice:
Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. using namespace std;
  5.  
  6. int leggi_file ();
  7.  
  8. int main() {
  9. leggi_file();
  10. }
  11.  
  12. //FUNZIONE PER LA LETTURA DA FILE CON COUT PER VISUALIZZARE IL FILE IN ESECUZIONE
  13. int leggi_file()
  14. {
  15. fstream in("morph.txt");
  16. if(in.is_open())
  17. {
  18. cout<<"";
  19. }
  20. else
  21. {
  22. cerr<<"error opening file";
  23. return(-1);
  24. }
  25. string what="";
  26. while(getline(in,what))
  27. {
  28. cout<<what<<endl;
  29. }
  30. }



PM Quote
Avatar
evox (Normal User)
Newbie


Messaggi: 3
Iscritto: 18/03/2010

Segnala al moderatore
Postato alle 14:30
Giovedì, 18/03/2010
il problema ce l'ho soprattutto nel troncare le righe del mio file .txt

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 951
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 19:10
Giovedì, 18/03/2010
Il programma di lettura del file è funzionanta, a quanto pare il problema sta nel manipolare le stringhe.

In tal caso ti consiglio di crearti una funzione che riconosca i caratteri dagli spazi, quindi scarti la "prima parola" e salvi la seconda per ogni riga.


Nulla va più veloce della luce, quindi rilassati.
PM Quote
Avatar
giuseppe93 (Ex-Member)
Pro


Messaggi: 166
Iscritto: 02/08/2009

Segnala al moderatore
Postato alle 23:00
Venerdì, 19/03/2010
puoi fare dei cicli per determinare se devi cancellare il pezzo di stringa che non ti serve.
per esempio puoi fare un cilclo while del tipo: mentre il primo carattere della stringa non è spazio allora sovvrascrivi ogni carattere della stringa con quello della sua dx. così ti togli la prima colonna, poi fai lo stesso per togliere gi spazi tra la prima e seconda colonna. puoi con un altro cilclo trovi la posizione del primo spazio e quindi trochi tutte le lettere che sono dopo quella pos.


:)
PM Quote