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 :

lecture identification dans fichier txt fscanf fseek


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2013
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2013
    Messages : 6
    Par défaut lecture identification dans fichier txt fscanf fseek
    Bonjour,

    voilà j'ai un fichier .txt qui est écrit de la manière suivante en boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    blabla1 : %d\nBlabla2: %f blabla3 @ (%f, %f)\n\n
    Ce que je souhaite faire c'est un fscanf (ou fseek) pour trouver récupérer les données %f uniquement. Il y en a trois.

    le problème c'est que je ne veux pas des char %s et et espace etc.

    Je suis débutant et je cherche la meilleure façon de faire cela, j'ai pensé faire un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %s %s %s %d\n%s %f %s %s %s%f, %f%s\n\n
    dans le fscanf pour ensuite que prendre ceux qui m'intéresse mais du coup je serais obligé de stocké le reste des %s à des endroits. Ce n'est pas une bonne solution.

    Sinon lui dire de sauter par exemple le curseur dix places à droite à chaque fois et ensuite détecter le caractère juste avant le %f. Je ne sais pas comment coder cette idée.



    Une idée ?



    merci

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Tu peux rajouter des étoiles pour ignorer certaines conversions et ainsi ne pas avoir à les stocker. Voir par exemple ici : http://stackoverflow.com/questions/2...at-identifiers

    Il y a un cours intéressant sur scanf() sur Developpez.com : http://xrenault.developpez.com/tutoriels/c/scanf/

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2013
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2013
    Messages : 6
    Par défaut
    Bonjour,
    merci de votre réponse très intéressante.

    J'ai fait donc dans mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fscanf(acquisition, "%*s %*s %*s %*d\n%*s %*s %f %*s %*s %*s%f, %f%*s\n\n", &tot, &a, &b);
    Pour des données écrites dans un fichier txt en boucle à l'aide de ce bout de code qui est dans une fonction créée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Donnee numero : %d\nMasse : %f kg @ (%f, %f)\n\n"
    J'ai simplement remplacé les chaines de caractères par "%*s". Par contre je ne récupère toujours pas les bons floats que je veux, j'ai regardé en console debug avec un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("donnees : %d, %f et %f", tot, a, b);
    Peut-être est-ce dû au saut de ligne ? Il y a une redondance bien sûr et peut-être que getline peut aider d'après mes recherches; étant donné que "Donnee numero : %d\n" ne m'intéresse pas.

    merci

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Pourrais-tu nous donner un extrait du fichier et l'affichage correspondant stp ?

    De plus, tu peux sûrement t'inspirer de ce qui est fait ici pour simplifier la chaîne formatée : http://gpraveenkumar.wordpress.com/2...ng-with-space/

  5. #5
    Nouveau membre du Club
    Inscrit en
    Septembre 2013
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2013
    Messages : 6
    Par défaut
    voici un extrait du fichier texte :

    Donnee numero : 299
    Masse : 9.683766 kg @ (0.978229, -0.558335)
    
    Donnee numero : 300
    Masse : 9.717045 kg @ (0.974359, -0.588115)
    
    Donnee numero : 301
    Masse : 9.781482 kg @ (0.964731, -0.604868)
    
    Donnee numero : 302
    Masse : 9.747455 kg @ (0.972473, -0.633680)
    
    Donnee numero : 303
    Masse : 9.860712 kg @ (0.961127, -0.643856)
    
    Donnee numero : 304
    Masse : 10.043962 kg @ (0.948479, -0.689421)
    et là un extrait du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    retrieve_printf(j, acquisition, "Donnee numero : %d\nMasse : %f kg @ (%f, %f)\n\n", numero_acquisition, total, x_board, y_board);
    cette fonction affiche en console ce qui est entre guillemets et suivant la valeur de j qui est une condition sur un bouton elle autorise l'écriture sur un fichier texte ou non.

    merci

    Je cherche simplement à récupérer les trois floats à partir du fichier texte pour exécuter un replay.

  6. #6
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Tu dis que les nombres lus ne sont pas les bons, quelles valeurs as-tu pour ce fichier par exemple ?

Discussions similaires

  1. Lecture D'un fichier TXT et Remplir dans un tableau
    Par Maz85 dans le forum VBScript
    Réponses: 2
    Dernier message: 21/05/2013, 11h21
  2. Réponses: 6
    Dernier message: 25/10/2012, 18h31
  3. Réponses: 2
    Dernier message: 27/07/2011, 10h10
  4. Lecture d'un fichier Txt dans une JSP !
    Par bim92i dans le forum Servlets/JSP
    Réponses: 11
    Dernier message: 29/04/2008, 09h55
  5. [C++] lecture/ecriture dans fichier txt/binary
    Par vince3320 dans le forum C++
    Réponses: 6
    Dernier message: 28/09/2007, 18h00

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