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 :

fonction strtok à inserer dans un tableau


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2011
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 149
    Par défaut fonction strtok à inserer dans un tableau
    Bonjour,

    voici les informations qu'il y a dans le fichier que je dois lire :
    titi;blabla;blabla;blabla;blabla;blabla
    toto;blabla;blabla;blabla;blabla;blabla

    c'est un fichier qui est donc structuré

    voici mon code qui fonctionne très 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
     
    // j'ouvre mon fichier
    fgets(szLine, L_PRM_LINE, fp);
     
    //tant que non fin de fichier
      while(!feof(fp))
      {
    	// affiche ma ligne szLine dans mon fichier debug
       dprintf("Début de szLine : <%s>\n", szLine);	
     
       char * pch;
     
       //découpage de ma ligne
       pch = strtok (szLine,";");
     
       while (pch != NULL)
       {
        pch = strtok (NULL, ";");		
       }
        fgets(szLine, L_PRM_LINE, fp);
      }
    Résultat :
    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
     
    Début de szLine : titi;blabla;blabla;blabla;blabla;blabla
    titi
    blabla
    blabla
    blabla
    blabla
    blabla
    Début de szLine : toto;blabla;blabla;blabla;blabla;blabla
    toto
    blabla
    blabla
    blabla
    blabla
    blabla
    j'aimerai insérer ses valeurs dans des cellules d'un tableau, et je ne vois pas comment.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    A1:titi A2:blalbla A3:blabla...
    B1:toto B2:blabla B3:blabla...

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    tu as déjà l'algo, il te manque plus que les index lignes/colonnes.
    Un peu de bon sens maintenant .

    - Tes index démarrent chacun à 0 (ou 1)
    - tu incrémentes la colonne quand tu rencontres un ;
    - tu incrémentes la ligne quand tu arrives en fin de ligne et tu réinitialises la colonne à 0 (ou 1)
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre confirmé
    Inscrit en
    Février 2011
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 149
    Par défaut
    Merci, je vais essayer, je ne suis pas très caler en tableau je vais voir la faq pour voir comment faire un tableau

  4. #4
    Membre confirmé
    Inscrit en
    Février 2011
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 149
    Par défaut
    dites moi si je me trompe, mais la fonction strTok découpe une chaine de caractère jusqu'au point délimiteur qui est ici le ";".
    Cette fonction me "l'affiche" en vrac. Moi j'ai besoin de récupérer ses informations dans des variables pour faire des traitements par la suite. Pour moi je ne voyais que des cellules de tableau, mais il y a peu être plus simple, mais je ne vois pas quoi...

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par défaut
    strtok modifie la chaîne.
    Elle remplace le premier token trouvé par un caractère de fin de chaîne, ce qui a pour conséquence de faire croire qu'on l'a découpé, mais en réalité on l'a altérée pour l'afficher.

    C'est aussi une vieille fonction C, et nous sommes en C++.
    Utiliser des std::string, stringstream, utiliser des méthodes de découpe ou parser la chaîne caractère par caractère.

    Quant à l'affichage, c'est purement esthétique et personnel, ton choix n'engage que toi.
    Que tu affiches un tableau (enfin... ce que tu appelles un tableau est je suppose le fichier ouvert sous excel), une liste, dans un fichier, une console, ... n'y changera strictement rien si l'algo initial est correct.
    Et strtok n'a rien à voir avec l'affichage.

    http://en.cppreference.com/w/c/string/byte/strtok
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    Membre confirmé
    Inscrit en
    Février 2011
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 149
    Par défaut
    alors moi je me base sur ce site la pour les fonctions : http://www.cplusplus.com/reference/clibrary/cstring/

    Parce que je suis entrain de faire du développement sur une application mobile qui à pour OS windows C.E... et je développe sur un outil qui est embedded visual c++ (sans débeugger c'est pour cela qu'il y a des dprintf un peu partout pour alimenter mon fichier de bug)oui c'est vieux... et je suis obligé d'utiliser MFC d'ou le strtok.

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Par défaut
    Un "tableau" ça n'existe pas nativement en C++.

    Par contre un tableur du genre Excel (ou équivalent OOo) saura importer ton fichier pour te l'afficher graphiquement dans un tableau.

Discussions similaires

  1. fonction pour naviguer dans un tableau 2D et autres
    Par kreaseb dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 10/09/2010, 10h31
  2. Réponses: 5
    Dernier message: 10/08/2009, 21h48
  3. Réponses: 5
    Dernier message: 29/06/2009, 14h50
  4. ERREUR D INSERE DANS UN TABLEAU A PARTIR DE JTextField
    Par fatimazahrazaidi dans le forum JDBC
    Réponses: 1
    Dernier message: 06/04/2008, 18h15
  5. Réponses: 3
    Dernier message: 24/04/2006, 19h56

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