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 :

lire un fichier et recupere dans un tableau en respectant des regles


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 46
    Par défaut lire un fichier et recupere dans un tableau en respectant des regles
    mon travail consiste à lire un fichier ligne par ligne et recupere chaque ligne dans un tableau et tester les contenus suivant des regles que je les definies , tout en supposons que mon fichier d'entré est semantiquement valide .
    Enfait voilà exemple du fichier d'entrée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <stdio.h>
    int main ()
    {
    int a ,b,c,z,y ;
     a=1;
     b=2;
     c=1;
     y=a+b;
     z=c+1;
     
     return 0;
    }
    et ma ficher de sortie sera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    temps    nomVar      ValVar       statu      @        Dependence        Tag 
    ------------------------------------------------------------------------------
       0        a          1         write       #            null             dirty 
       1        b          2         write       #            null             dirty
       2        c          1         write       #            null             dirty
       3        z          3         write       #            null             write
       4        y          2         write       #            null             write
    mes regles seront , à mon avis :
    pour un ligne :
    z = a + b ;
    je recupere ce ligne dans un tableau temporaire tmp[] unidemension , de telle façon sue tmp[0]='z'
    tmp[1]= '='
    tmp[2]= 'a'
    tmp[3]= '+'
    tmp[4]= 'b'
    *** mon condition d'arret pour recuperation un ligne sera le ";" en notant que les mots du chaque ligne est seapré par un seul espace dans le fichier d'entrée .

    d'apres mon tableau la premier case sera stocker dans colonne 2
    quand je le lis '=' dans cas 2 alors j'ecris 'write' dans colonne qui definit statu ( cad ici on a affectation )
    la 3eme case donne dependence s'il est un lettre si non je l'affecter pour calcul ect ..
    j'espere vous comprennez mon idée et comment je lis ma fichier d'entré pour generer ma fichier de sortie
    j'attends vos aides et merci

    @ = segnifie adrsse memoire du variable
    Tag = statu à la fin de l'instruction

  2. #2
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 35
    Par défaut
    Excuse moi mis en fait je ne vois pas ou tu bloque
    Tu as l'air d'avoir bien dégrossi le problème il ne te reste plus qu'a mettre du c par dessus tou ça.

    Ceci dit moi à ta place je ne prendrai pas de tableau unidimensionnelle car rien dans ta description ne dit que toutes tes lignes auront la même taille
    (z = a+b est plus long que a = 1)tu devrais peut-être lire caractère par caractère les stockés et commencé le traitement une fois lu le caractère ;
    Le traitement est ensuite une simple analyse syntaxique de la ligne lu.

  3. #3
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Une solution simple, consiste à lire ton fichier d'entrée ligne pas ligne, tu sauve la ligne dans une variable en chaine de caractère.
    La première des choses, tu vérifie si la ligne contient au moins un point de virgule, ensuite tu commence par balayer le contenu de cette variable, si tu tombe sur une des conditions qui te permettent de trouver une syntaxe, tu lance une autre fonction qui permet de mettre en évidence cette syntaxe.

    Il faut pas oublier ce cas ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int mAVAR ;
     
    mAVAR = 125  + 15 ;

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/04/2011, 11h44
  2. Lire un fichier et ranger dans tableau
    Par Nemesis007 dans le forum Débuter
    Réponses: 4
    Dernier message: 24/02/2010, 09h56
  3. Réponses: 32
    Dernier message: 11/03/2007, 11h25
  4. Réponses: 2
    Dernier message: 22/09/2006, 08h33
  5. Réponses: 3
    Dernier message: 09/06/2006, 12h36

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