IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

chercher dans une colonne d'un fichier Text C++


Sujet :

C++

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut chercher dans une colonne d'un fichier Text C++
    salut tout le monde,

    au cadre de mes etudes je doit ecrire un programme en C++ qui cherche des nombres dans une colonne d'un ficher Text

    j'ai deja un appris les principes a lire et a ecrire des fichiers text mais de chercher dans une colone ca doit etre un peux difficile pour mois parce que je suis encore debutent en programmation

    alors je veux savoir le principe pour coder ce programme afin qui cherche les nombres dans une seule colonne sans s'introduire dans les autres

    Nom : Tableau text.jpg
Affichages : 201
Taille : 257,5 Ko

    le cadre rouge représente la colonne qui doit être traité.


    Merci pour votre proposition.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Il faut coder un automate, mais il faut connaître ses lignes parfaitement.

    Un exemple d'automate :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    etat = column_1
     
    Pour chaque caractère c et etat != erreur faire
        switch(etat) {
            case column_1:
            switch(c) {
            cas un chiffre: on ne fait rien; break;
            cas espace: etat = wait_column_2; break;
            default: etat = erreur;
            }
            break;
     
     
            case wait_column_2:
            switch(c) {
            cas un chiffre: etat = column_2; break;
            cas '-': etat = column_2; break;
            cas espace: on ne fait rien; break;
            default: etat = erreur;
            }
            break;
     
     
            case column_2: case column_2_float:
            switch(c) {
            cas un chiffre: on ne fait rien; break;
            cas '.': if (etat == column_2) { etat = column_2_float; } else { etat = erreur; } break;
            cas espace: etat = wait_column_3; break;
            default: etat = erreur;
            }
            break;
     
    // ...
     
        }
    Fin Pour

    Édit : On va chercher la 3ième colonne, extraire la valeur et ensuite on va "manger" tous les caractères jusqu'à la fin de la ligne et recommencer sur la ligne suite et ainsi de suite

  3. #3
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2014
    Messages : 5
    Points : 12
    Points
    12
    Par défaut
    Voici le principe d'une solution á ton probleme:

    Je pars du principe que tu connais les fonctions de base pour manipuler les fichiers ( avec fstream ).

    - Tu ouvres ton fichier
    - La 1ere ligne ne t'interesse pas pas donc tu la passe avec un getline()
    - Ensuite tu sais que tu veux seulement la 3eme colone, donc tu peux passer les 2 premier termes en faisant 2 fois TonFichier >> TaVariable1
    - Tu en es maintenant à la colone que tu veux, tu as juste a récupére la 1ere ligne de la 3eme colone avec TonFichier >> TaVariable2

    A ce stade tu n'as récupéré que la premiere ligne de la 3eme colone,

    - Il te reste maintenant 4 termes avant la fin de la ligne + 2 avant de d'arriver à la 2eme ligne de la 3eme colone et ainsi de suite.

    J'espère t'avoir aidé, si tu as besoin d'aide pour le code je suis la.

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    apres quelque recherche sur le net j'ai reussi a ecrire ce programme qui fonctionne parfaitement bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    #include <iostream>
    #include <string>
    #include <fstream>
    #include <sstream>
    #include <vector>
     
    using namespace std;
     
     
     
    int main()
     
    {
     
            ifstream fichier("d:\\SimuText.txt", ios::in);  // on ouvre en lecture
     
    		int y_react [4] ;
     
     
    		for (int i = 0; i < 4;i++)
    		{
    			stringstream ss;
    			ss << (i+1);
    			string a = ss.str();
    			cout << "geben sie den " + a + "ten Wert ein:";
    			cin >> y_react[i];
    		}
     
     
            if(fichier)  // 
            {
     
            	int lineNumber = 0;
            	vector<string> tokens; 
    			while(!fichier.eof())
    			{
     
                    string content;  
     
                    getline(fichier, content);  // on met dans "contenu" la ligne
    				lineNumber++;
     
    				if (lineNumber>1)
    				{
     
    		  			string buf; 
    		    		stringstream ss(content); 
     
    		    		while (ss >> buf)
    		        	{
    		        		tokens.push_back(buf);
    		        	}
     
     
     
    		        	if (!tokens.empty()&&tokens.size()==7)
    		        	{
     
    						string y_str = tokens.at(2);
    						int y;
    						istringstream ( y_str ) >> y;
     
     
    						for (int j = 0; j < 4; j++)
    						{
     
    							if (y == y_react[j])
    							{
    								cout << y_str+ "    yuhu!!    time=" + tokens.at(0) + "\n";
    							}
    						} 
     
    		        	}
    		             tokens.clear();
    	            }
                }
    			fichier.close();
            }
     
            else
                    cerr << "Impossible d'ouvrir le fichier !" << endl;
            return 0;
     
    }
    en fait merci pour votre reponses ))

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Extraction d'une colonne d'un fichier texte
    Par KTARIK dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 04/06/2014, 21h19
  2. Suppression doublon dans une colonne après consolidation fichiers
    Par Gigelle dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 04/12/2013, 13h53
  3. Remlacer une colonne d'un fichier texte
    Par NeqO55 dans le forum Linux
    Réponses: 7
    Dernier message: 06/09/2007, 20h16
  4. recuperer 3 float dans une ligne d'un fichier texte
    Par obiwankennedy dans le forum C++
    Réponses: 3
    Dernier message: 14/03/2006, 03h59
  5. [VB]recherche dans une partie d'un fichier texte
    Par malhivertman1 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 19/01/2006, 11h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo