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++ - Prendere solo una parte da un file txt C++
Forum - C/C++ - Prendere solo una parte da un file txt C++

Avatar
FelpatoK (Normal User)
Newbie


Messaggi: 2
Iscritto: 27/05/2015

Segnala al moderatore
Postato alle 20:25
Mercoledì, 27/05/2015
Salve, sono veramente in crisi con la produzione di un codice che mi permetta di rilevare una parte precisa di un file di testo strutturato, vi faccio un esempio:
ACCIANO                            AQ     ABR     67020     0864     A018     066001


Se io volessi inserire nella mia variabile , per esempio, solo il codice della provincia (AQ in questo caso) come dovrei fare? E soprattutto, posso utilizzare una stringa in cui mettere la parte rilevata?
Grazie in anticipo.

Ultima modifica effettuata da FelpatoK il 27/05/2015 alle 21:51
PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1452
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 21:36
Mercoledì, 27/05/2015
Certo che puoi, anzi, DEVI. In che altro modo potresti memorizzare dei caratteri se non in una std::string o in una linked list (che sono comunque dei modi diversi di gestire una stringa)? Il trucco sta solo nel capire COME distinguere AQ PD TV da tutto il resto..... Se sono le uniche "parole" formate da due lettere ti basta contare le lettere da uno spazio a quello successivo. Se non è così devi poi filtrare le due lettere in modo tale da avere solo le sigle della provincia (quindi stando attento che non possa essere scambiata per provincia qualcosa del tipo AA o BB)

PM Quote
Avatar
FelpatoK (Normal User)
Newbie


Messaggi: 2
Iscritto: 27/05/2015

Segnala al moderatore
Postato alle 21:53
Mercoledì, 27/05/2015
Si, per quel problema stavo pensando ad una cosa del genere. Ma il secondo problema è che essendo la prima volta che opero con file esterni, non so proprio che istruzioni usare! Per delle semplici char ho trovato qualcosa, ma per le stringhe?

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1452
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 23:28
Mercoledì, 27/05/2015
Tu leggi sempre carattere per carattere con il getch. Quando hai trovato una stringa di due lettere usi fseek e ti riporti indietro di 3 caratteri, ne leggi uno alla volta e lo salvi su una stringa.

PM Quote
Avatar
lumo (Member)
Expert


Messaggi: 413
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 22:15
Giovedì, 28/05/2015
Testo quotato

Postato originariamente da TheDarkJuster:

Tu leggi sempre carattere per carattere con il getch. Quando hai trovato una stringa di due lettere usi fseek e ti riporti indietro di 3 caratteri, ne leggi uno alla volta e lo salvi su una stringa.


lol

PM Quote
Avatar
lumo (Member)
Expert


Messaggi: 413
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 22:20
Giovedì, 28/05/2015
Testo quotato

Postato originariamente da FelpatoK:

Salve, sono veramente in crisi con la produzione di un codice che mi permetta di rilevare una parte precisa di un file di testo strutturato, vi faccio un esempio:
ACCIANO                            AQ     ABR     67020     0864     A018     066001


Se io volessi inserire nella mia variabile , per esempio, solo il codice della provincia (AQ in questo caso) come dovrei fare? E soprattutto, posso utilizzare una stringa in cui mettere la parte rilevata?
Grazie in anticipo.


Se tutte le righe sono strutturate cosi', puoi usare questa format flag http://www.cplusplus.com/reference/ios/skipws/, applicato al file stream (supponendo che tu stia usando fstream e non fopen() and co.)
Ti dovrebbe venire fuori una cosa del genere
Codice sorgente - presumibilmente C/C++

  1. std::ifstream fin("miofile.txt");
  2. fin.setf(std::skipws);
  3. while (!fin.eof())
  4. {
  5.    // leggi la riga separando ogni parte in una variabile
  6.    fin >> var1 >> var2 >> var3; //eccetera
  7.    // processi le variabili, suppongo che tu le debba salvare da qualche parte
  8. }



Ma una volta non c'era l'highlighting sul forum?

Ultima modifica effettuata da lumo il 28/05/2015 alle 22:21
PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1452
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 23:33
Giovedì, 28/05/2015
Testo quotato

Postato originariamente da lumo:

Se tutte le righe sono strutturate cosi'



.....ce lo avrebbe detto (spero).

Comunque credo che la mia soluzione sia la più veloce nell'esecuzione. E non è bruttissima.....

PM Quote