Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1

    [c++]leggere dati da un file .txt

    allora io vorrei, preso un file di testo, estrarre dei dati.
    nel caso particolare vorrei dati questo testo estrarre le parti evidenziate:


    Meidad Sagron (209070894)
    Israel 19 anni e 25 giorni, Prossimo compleanno: 29-03-2009

    debole di forma
    , accettabile in resistenza
    Una persona simpatica, tranquilla e onesta.
    È disastroso in esperienza e debole in carisma.
    Proprietario: fantani (dal 25-12-2008)
    Indice Totale Skill (TSI): 1 000
    Ingaggio: 636 €/settimana incluso 20% Bonus
    Ammonizioni: 0
    Infortuni: Nessuno
    Attendere prego... Attendere prego...
    Skill attuali
    Resistenza: accettabile Parate: disastroso
    Regia: debole Passaggi: scarso
    Cross: scarso Difesa: buono
    Attacco: debole Calci piazzati: tremendo


    e sostituire alle stringhe degli interi.

    ovvero nell'ultima parte, se ad esempio trovo "buono" riempire un int chiamato dif col valore 7.....

    in modo da crearmi un gruppo di interi con i quali poi operare!

    allora:
    inizio leggendo il file grazie a fstream....
    e, con un codice così:

    codice:
    #include <iostream>
    #include <fstream>
    
    using namespace std;
    
    int main() {
    	fstream in("file.txt");
    	if(in.is_open()){
    		cout<<"";
    	}
    	else{
    		cerr<<"error opening file";
    		exit(-1);
    	}
    	string what="";
    	while(in>>what){
    		cout<<what<<endl;
    
    	}
    
    
    }
    ora dovrei eliminare le parti inutili.....con la funzione ignore ad esempio.....
    oppure trasformare il testo in una stringa.....
    che mi dite a questo punto?

    grazi e a tutti e buon anno

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Altrettanti auguri
    Se vuoi leggere la linea completa meglio se operi così ( l'operatore >> si ferma al primo spazio):
    codice:
    #include <iostream>
    #include <fstream>
    #include <string>
    using namespace std;
    
    int main() {
    	fstream in("file.txt");
    	if(in.is_open()){
    		cout<<"";
    	}
    	else{
    		cerr<<"error opening file";
    		exit(-1); // meglio evitarla in C++ per problemi legati ai distruttori. Usa return piuttosto.
    	}
    	string what="";
    	while(getline(in,what)){
    		cout<<what<<endl;
    
    	}
    }

  3. #3
    ecco così la sua visualizzazione è assai migliore

    per iniziare vorrei eliminare righe che a me non servono....che funzione posso usare?

    sempre getline?

  4. #4
    Puoi usare il metodo ignore().
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    come posso dirgli di ignorare alcune righe?

  6. #6
    codice:
    #include <limits>
    //...
    for(int i=0;i<=numerorighedaignorare;i++)
        in.ignore(numeric_limits<streamsize>::max(),'\n' );
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    grazie!

    mi è venuto in mente di creare una classe per il giocatore....
    poi inserirei nel costruttore tutto questo lavoro con il file di testo....

    codice:
    #include <iostream>
    #include <fstream>
    #include <string>
    #include "giocatore.h"
    using namespace std;
    
    int main() {
    	fstream in("file.txt");
    	if(in.is_open()){
    		cout<<"";
    	}
    	else{
    		cerr<<"error opening file";
    		return -1; 
    	}
    	string what="";
    	while(getline(in,what)){
    		cout<<what<<endl;
    
    	}
    }
    il codice per ora è questo.
    devo fare un costruttore.

    il problema è che le righe che devo ignorare non sono le prime o consecutive...sono delle righe sparse!

  8. #8
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Più che sapere come ignorare una linea, dovresti individuare il criterio su come discriminare le linee che non ti interessano. (Lunghezza? Caratteri? Numero di A o C presenti? Le dispari, le pari?)
    Senza porre delle condizioni precise, non vai molto lontano.

  9. #9
    il fatto è che tutti questi file saranno dello stesso tipo....
    dunque io so già quali sono le righe da eliminare!

    nel caso specifico devo eliminarle tutte tranne le:
    1,4,8,9,14,15,16,17!
    quindi non dovrei dover dare dei criteri....

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    703
    se stai lavorando con file di testo invece che con database, la soluzione che mi è stata consigliata a me è di leggere tutte le linee(usando la funzione getline) e di riscrivere solo quelle interessate in un nuovo file di testo che avrà lo stesso nome; in questo modo di fatto "elimini".

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.