Comment lire un fichier csv en c

<

Contenu

  • Conseils & avertissements
  • article data-type="article">
    programmes de tabulation et calcul peut données de sortie au format CSV

    De nombreux produits logiciels qui traitent avec des chiffres et des calculs ont la capacité de données de sortie dans un fichier Comma Separated Value (CSV). Ce format peut être un moyen efficace de transporter des données entre les différents programmes, comme il est lisible et assez facile à manipuler. De nombreux programmes C qui traitent les données auront probablement à lire à partir d`un fichier CSV à un moment donné.

    Choses que vous devez

    • Éditeur de texte
    • Compilateur
    • entrée de fichier CSV
    • Consultez la documentation du programme qui fournit le fichier CSV. Déterminer le nombre de champs dans chaque ligne, ainsi que le format de chaque champ. Par exemple, si un programme fournit un CSV avec les données suivantes:

      1, "tester"34,5

      Vous notez trois champs: un entier, une chaîne et un nombre à virgule flottante.

    • Créer une structure contenant un membre de données pour chaque champ identifié dans le CSV. Utilisation de la ligne d`exemple fourni de 1, "tester", 34,5 vous auriez besoin de la structure suivante:

      données struct

      {

      int col1;

      char * col2;

      flotter col3-

      };

    • Créer une méthode dans votre programme qui va gérer la lecture du fichier CSV. Cela devra être accessible au reste de votre programme, et aura probablement besoin de travailler sur les structures de données communes afin que les autres méthodes peuvent accéder aux données qui a été lu dans. Passez le paramètre par référence pour supprimer la nécessité d`une valeur de retour . Un prototype de fonction d`exemple serait:

      vide ParseCSV (char * nom de fichier, les données& contribution );

    • Inclure l`en-tête IO standard en utilisant le code suivant:

      comprendre



      Ajoutez ce code à la partie supérieure du fichier source qui sera la lecture du CSV.

    • Inclure la bibliothèque de chaîne pour permettre la manipulation des données CSV en utilisant le code suivant:

      comprendre

      Ajoutez ce code à la partie supérieure du fichier source qui sera la lecture du CSV.

    • Créer un objet fichier, qui va lire dans les données, en utilisant le code suivant:

      FILE * pInput;

    • Créer un tampon de caractères assez grand pour contenir une ligne du fichier à la fois. En raison des contraintes de la langue, la façon la plus simple de le faire est de déclarer un tableau de caractères d`une taille suffisamment grande, comme:

      définir buffer_size 1024

      char buf [buffer_size];

    • Ouvrez le fichier avec le code suivant, et l`attribuer à votre objet FILE précédemment créé:

      pInput = fopen ("nom de fichier," "r")

    • Lire dans une ligne du fichier en utilisant le code suivant:

      fgets (buf, sizeof (buf), pInput)

    • Parse CSV en utilisant la fonction "strtok". Créer une nouvelle chaîne de caractères pour pointer vers les jetons, et l`initialiser avec les données de la ligne lue ci-dessus:

      char * tok = strtok (buf, ",")

    • Convertir le jeton reçu dans les données appropriées. Utilisation de la ligne d`exemple:

      1, "tester"3,45

      convertir les données contenues dans "tok" à un nombre entier en utilisant le code suivant:

      row.col1 = atoi (tok);

    • Pour les lectures suivantes sur la même ligne, passer "strtok" un paramètre à la place de la chaîne tampon vous lisez avant NULL:

      tok = strtok (NULL, ",")

      Ensuite, convertir le jeton au type de données approprié. Utilisation de la ligne d`exemple

      1,"tester"3,45

      Le code d`analyse pour une seule ligne serait:

      char * tok = strtok (buf, ",");

      row.col1 = atoi (tok);

      tok = strtok (NULL, ",");

      row.col2 = tok;

      tok = strtok (NULL, ",");

      row.col3 = atof (tok);

    • Pour ce faire, pour toutes les entrées sur chaque ligne du CSV. La fonction "strtok" continuera à fournir les données entre les valeurs de virgule jusqu`à épuisement des données dans la mémoire tampon, à quel point il retournera NULL. Ceci indique que vous avez terminé avec la ligne.

    Conseils & Avertissements

    • Encapsuler votre conversion de données dans une autre méthode pour rendre le code plus lisible.
    • le "fgets" méthode retourne NULL lorsque le fichier a été entièrement lu. Utilisez ce dans une boucle de temps pour parcourir la totalité du fichier.
    • La fonction "fopen" peut retourner NULL s`il y avait une erreur - assurez-vous de vérifier votre fichier avant de l`utiliser.
    • Dans certains cas, les jetons fournis peuvent ne pas être sur le format attendu. Assurez-vous d`examiner vos données avant de convertir aveuglément en vérifiant par rapport aux valeurs d`erreur courants (la chaîne vide, NULL, etc).

    AUTRES

    Comment ouvrir mdb avec vba фото

    Comment ouvrir mdb avec vba

    Visual Basic pour Applications (VBA) fournit aux programmeurs un outil léger pour interagir avec les produits Office…

    » » » » Comment lire un fichier csv en c