et c'est quoi le délimiteur de colonne dans ce fichier CSV ?
c'est une position précise pour chaque colonnes ou un caractère précis ?
et c'est quoi le délimiteur de colonne dans ce fichier CSV ?
c'est une position précise pour chaque colonnes ou un caractère précis ?
le point virgule ";"et c'est quoi le délimiteur de colonne dans ce fichier CSV ?
Je crois surtout qu'il espère que tu vas réfléchir à sa place sur des questions qui n'ont rien de techniques ...
mais quand je vois ça, je ne vois pas de point virgule !Requête Référence Proprietaire Date Arrivée Matériel
57101 __C7587J __PARIS_____ 20/01/2009
57102 __123456 __NANTES___ 18/12/2008
57103 __789456 __PARIS_____ 14/06/2008
57104 __654528 __PARIS_____ 15/05/2008
57105 __321654 __NANTES___ 21/02/2009
je crois bien aussi ......Je crois surtout qu'il espère que tu vas réfléchir à sa place sur des questions qui n'ont rien de techniques ...
Bonjour,
Ceci représente l'exemple d'un tableau!!!!Requête Référence Proprietaire Date Arrivée Matériel
57101 __C7587J __PARIS_____ 20/01/2009
57102 __123456 __NANTES___ 18/12/2008
57103 __789456 __PARIS_____ 14/06/2008
57104 __654528 __PARIS_____ 15/05/2008
57105 __321654 __NANTES___ 21/02/2009
Et oui ce sont des points virgules ";" les séparateurs dans un fichier .csv mais moi j'ai remplacer c'est point virgule par des pipes "|"!!
je voulais juste avoir de l'aide, sur comment filtrer une colonne!!!
merci pour votre aide
Réalisation du code pour afficher dans la combobox :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 // PERMET D'AFFICHER LES SITES DANS LA COMBOBOX SANS AVOIR DEUX FOIS LE MEME... int w,x; int res2; w=1; m_valueCtrlSite.InsertString(0,(CString)listesite[0]); // on insert dans la ComboBox le nom du premier site for (int j=0;j<60000;j++) // pour 60000 lignes... { x=j; // "x" prend la valeur de "j" (c'est a dire le numero de la ligne) do //faire { if (j!=0) // si j est différent de 0 (car sinon listesite[j-1] n'existe pas -> bug) { res2 = strcmp (listesite[x-1],listesite[j]); // on compare le nom du site au précédent if (res2!=0) // si les 2 noms sont différent { x--; // on décrémente "x" de facon à comparer avec le nom du site "l-2" puis "l-3"... if (x==0) // ...jusqu'à temps que "x" soit égale à zéro (c-à-d jusqu'à ce qu'on est remonté tout le tableau) { m_valueCtrlSite.InsertString(w,(CString)listesite[j]); // s'il n'y était pas encore, on ajoute le nom du site dans la liste de la ComboBox w++; // on incrémente "w" qui correspond à la place du nom de site dans la liste de la ComboBox } } else // sinon, si les 2 chaines sont identiques (nom du site déja rencontré) { x=0; // on met "x" à zéro de facon à sortir de la boucle } } else { x=0; // on met "x" à zéro de facon à sortir de la boucle } } while (x!=0); //tant que "x" est différent de zéro } m_valueCtrlSite.SetCurSel(0); // Met la premiere valeur de la liste en choix par défaut m_valueCtrlSite.DeleteString(w-1); //Supprime le dernier choix de la liste (c'était un "vide"...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77 //PERMET DE METTRE TOUS LES NOMS DES SITES PRESENT DANS LE FICHIER .CSV DANS UN TABLEAU "listesite" void CChoixIlot::ListeSite() { FILE * fichierCsv; // Nom du fichier qu'on va utiliser char * cToken; // Buffer du contenu des valeurs d'une ligne char * cToken2; // Buffer du contenu des valeurs d'une ligne char cBuffligne[1500] = ""; // Buffer du contenu de la ligne du fichier int iCompteur = 0; // Compte le nombre de fois où on boucle int colonneProprietaire; bool d=TRUE; // Numéros des colonnes qui nous intéressent // ON RECUPERE LE NUMERO DES COLONNES QUI NOUS INTERESSENT if(( fichierCsv = fopen (cheminFichier1,"r")) != NULL) //Si pas de problème lors de l'ouverture du fichier { //if (fgets(cBuffligne,sizeof(cBuffligne),fichierCsv) != NULL) while ( (fgets(cBuffligne,sizeof(cBuffligne),fichierCsv) != NULL) && d==TRUE )//pour toute les lignes du fichier ou jusqu'a ce que "d" soit faux { cToken = strtok( cBuffligne, "|\n" ); //Le délimiteur des valeurs est un pipe while( cToken != NULL && d==TRUE ) { iCompteur ++; // lorsqu'on boucle, cela veut dire qu'on passe à la colonne suivante... if((CString) cToken == "Propriétaire") { // si entre deux virgules on reconnait ce String colonneProprietaire = iCompteur;// alors on recupère ce qui correspond à son numéro de colonne cToken=NULL; } if ((CString) cToken == "Date Effective")// si on rencontre la dernière colonne "Date Effective" { d=FALSE; // on met "d" a FALSE pour sortir de la boucle } cToken = strtok( NULL, "|\n" ); //on passe au Token suivant }iCompteur=0; } }fclose(fichierCsv); if(( fichierCsv = fopen (cheminFichier1,"r")) != NULL) { CString temp; int l=0; //Si pas de problème lors de l'ouverture du fichier while (fgets(cBuffligne,sizeof(cBuffligne),fichierCsv) != NULL) //Pour chaque ligne du fichier { iCompteur=0; cToken2 = strtok( cBuffligne, "|" ); //Le délimiteur des valeurs est un pipe while ( cToken2 != NULL ) { iCompteur ++; // compteur des "pipe", à chaque boucle on est passé à la colonne suivante if ( iCompteur == colonneProprietaire ) // si on est à la colonne "Propriétaire" { int result=strcmp(cToken2," "); // on compare la valeur de la cellule a "vide" if(result!=0) //si la colonne "propriétaire" a bien été rempli { if ((CString)cToken2!="Propriétaire") // si la chaine de caractère n'est pas le titre de la colonne { temp=(CString)cToken2; // "temp" prend pour valeur le nom du site int c = temp.GetLength();// "c" prend pour valeur sa longueur temp.Delete(4,c-4); // on supprime tout le nom du site à partir du 4ème caractère int res1=strcmp(temp,"PROPRIETAIRE"); // pour pouvoir le comparer a la chaine "PROPRIETAIRE" if (res1!=0) { listesite[l]=cToken2; // on ajoute le nom du site au tableau "listesite" l++;//on incrémente le pointeur qui indique la ligne du tableau } } } } cToken2 = strtok( NULL, "|" ); // on récupère l'autre Token } } } fclose (fichierCsv); // on ferme le fichier }
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