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
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
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().
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.
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;
Le char Date[8]; me gêne un peu, quel est le contenu exact de ce champ ?
comment ca le champs te gene? par rapport à son emplacement, ou sa taille?
01/06/06, ca fait 8 caracteres, ton tableau est donc trop petit pour contenir le \0 final...Envoyé par nemesys971
parcontre pourquoi ca me met ca : "strlen' undefined..."
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.
parcontre je ne connais pas du tout la fonction strtok
pour l'utilisation de fgets
Code : Sélectionner tout - Visualiser dans une fenêtre à part fgets(&UnTirage, sizeof(struct InfoTirage), PtrFichier);
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.
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...
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é...Envoyé par nemesys971
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager