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 :

Les fichiers .csv


Sujet :

C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Points : 28
    Points
    28
    Par défaut Les fichiers .csv
    Salut

    Je voudrais savoir comment est-ce que l'on fait pour récupére des informations dans un fichier .csv pour les placées dans une structure.

    et le parcourt d'un fichier csv se fait-il avec fseek()?

    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Avec fgets et strtok par exemple, lecture ligne par ligne (fgets), extraction des données avec le pistage des séparateurs (strtok).
    Pas d'utilisation de fseek().
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Membre averti
    Avatar de joellel
    Profil pro
    Inscrit en
    Février 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2003
    Messages : 234
    Points : 338
    Points
    338
    Par défaut
    Bonjour!

    Un fichier .csv est un fichier texte organisé en lignes où les valeurs de chaque ligne sont séparées par des ;
    Si tu connais le type des données, c'est facile à lire avec les fonctions fread() ou fscanf(). Tu peux bien sûr utiliser fseek.
    Si tu veux plus de détails, donne un extrait de ton fichier et la structure où tu veux charger les données.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Points : 28
    Points
    28
    Par défaut
    extrait de ma structure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    struct InfoTirage
    {	int Numero;
    	float NbFois;
    	float Pourcentage;
    	char Date[8];
    	int Ecart;
    	float NbTirage;
    };
    struct InfoTirage UnTirage;

  5. #5
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Le char Date[8]; me gêne un peu, quel est le contenu exact de ce champ ?
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Points : 28
    Points
    28
    Par défaut
    c'est un champ date => ex : 01/06/06

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Points : 28
    Points
    28
    Par défaut
    comment ca le champs te gene? par rapport à son emplacement, ou sa taille?

  8. #8
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par nemesys971
    c'est un champ date => ex : 01/06/06
    01/06/06, ca fait 8 caracteres, ton tableau est donc trop petit pour contenir le \0 final...
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  9. #9
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Points : 28
    Points
    28
    Par défaut
    oups! c'est vrai!

  10. #10
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Points : 28
    Points
    28
    Par défaut
    parcontre pourquoi ca me met ca : "strlen' undefined..."

  11. #11
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    C'est la fonction strlen qui est undefined ? inclus <string.h>
    Pour le champ date c'était effectivement la taille qui me gênait.
    Ceci dit, on peut laisser à 8 mais la manipulation est plus compliquée.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  12. #12
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Points : 28
    Points
    28
    Par défaut
    Ok merci

  13. #13
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Points : 28
    Points
    28
    Par défaut
    parcontre je ne connais pas du tout la fonction strtok

  14. #14
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Points : 28
    Points
    28
    Par défaut
    pour l'utilisation de fgets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fgets(&UnTirage, sizeof(struct InfoTirage), PtrFichier);

  15. #15
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Attends, du fgets() depuis un fichier texte directement sur une structure ?
    Qu'as-tu fumé?

    Il faut parser chaque champ séparément pour remplir la structure.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  16. #16
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Points : 28
    Points
    28
    Par défaut
    a oui et on fait sa comment?

  17. #17
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    fgets() sur un buffer texte d'une taille suffisante, puis strtok() ou strtok_r()/strtok_s() pour séparer les morceaux de la chaîne (séparés par des virgules ou des points-virgule, généralement) et strtol() pour convertir chaîne en nombre...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  18. #18
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Points : 28
    Points
    28
    Par défaut
    fgets(Chaine, sizeof(Chaine), PtrFichier);

    quand je veux afficher les données récupérée par la chaine ... rien

    apres quand je vérifie mon fichier ... impossible d'afficher le fichier

    ...euh je fais comment?

  19. #19
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par nemesys971
    fgets(Chaine, sizeof(Chaine), PtrFichier);

    quand je veux afficher les données récupérée par la chaine ... rien

    apres quand je vérifie mon fichier ... impossible d'afficher le fichier

    ...euh je fais comment?
    Montre un exemple de fichier CSV. SI il n'est pas lisible dans un éditeur de texte, c'est qu'il est sérieusement buggé ou compressé...
    Pas de Wi-Fi à la maison : CPL

  20. #20
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Points : 28
    Points
    28
    Par défaut
    Numero NbFois Pourcentage Date EcartSorti NbTirage
    1 645 14,81 05/06/2006 0 4355
    2 607 13,94 29/04/2006 4 4355
    3 591 13,57 05/03/2006 2 4355
    4 650 14,93 05/03/2006 2 4355

Discussions similaires

  1. Ecriture dans les fichiers csv
    Par nicogigo dans le forum Général Python
    Réponses: 4
    Dernier message: 17/03/2010, 16h38
  2. Réponses: 2
    Dernier message: 15/08/2009, 01h51
  3. Librairies PERL pour les fichier csv
    Par flavia dans le forum Programmation et administration système
    Réponses: 6
    Dernier message: 11/08/2008, 18h41
  4. [CSV] Détecter le séparateur pour les fichiers CSV
    Par JavaEli dans le forum Langage
    Réponses: 1
    Dernier message: 30/11/2005, 23h42
  5. [Excel] séparateur pour les fichiers csv
    Par drinkmilk dans le forum Excel
    Réponses: 2
    Dernier message: 27/08/2005, 14h21

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