Structure en c#

cs_jackasse Messages postés 16 Date d'inscription mercredi 26 mai 2010 Statut Membre Dernière intervention 9 juin 2011 - 25 mai 2011 à 14:55
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 - 25 mai 2011 à 16:33
Bonjour
je suis en pleine réalisation de mon projet , le projet c'est un distributeur de boisson
pour cela je dois gérer le stock ( combien de produit il reste dans la machine , quantité ........ect )
j'ai crée une base de données que j'ai nommée "stock"
mon collègue qui bosse avec moi dans le projet m'envoie le nombre de quantité qui reste dans le distributeur sous un fichier txt
par exemple ( Redbull 500)
ma question c'est la suivante
comment faire pour récupérer le contenu de mon fichier .Txt et l'afficher dans mon datagrid view
est ce que quelq'un a une idéé ou un tuto Merci ts le monde
Ps : j'ai pensée a creer une structure qui parcours mon fichier.txt mais je sais pas comment

8 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
25 mai 2011 à 15:19
Bonjour,

Le plus simple dans ton cas, c'est que ton collègue t'envoie un fichier csv avec séparateur... et ensuite, c'est très simple.

stock.txt :

RedBull;500
Coke;250
Orangina;268



using(var sr = File.OpenText("stock.txt")) {
   var line;
   while((line = sr.ReadLine()) != null) {
      var infos = line.Split(';');
      // ici dans infos, j'ai :
      // infos[0] : le nom de la boisson
      // infos[1] : la quantité
      // reste à traiter ses données
   }
}




Sébastien FERRAND
Lead Developpeur
Microsoft Visual C# MVP 2004 - 2009
Blog Photo
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
25 mai 2011 à 15:43
Salut,

tu peux effectivement créer une structure/classe de mapping (ne pas oublier les accesseurs pour que ça s'affiche une fois bindé dans ton DataGridView).

Une idée serait par exemple de parcourir ton fichier en instanciant un objet à chaque enregistrement trouvé, que tu ajouterais à un ArrayList (System.Collection). Derrière tu mets cette collection en DataSource de ton DataGridView et ça devrait rouler.
0
cs_jackasse Messages postés 16 Date d'inscription mercredi 26 mai 2010 Statut Membre Dernière intervention 9 juin 2011
25 mai 2011 à 15:50
et sinn apres avoir creer mon fihcier txt par exemple

Redbull 50
coca 50

je fais comment pour les ajouter dans le datagrid view
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
25 mai 2011 à 15:56
Tu fais comme sebmafate t'a dit, en splittant sur l'espace et non le point-virgule. Et tu remplaces sa partie pseudo-code (commentaire) grâce à la méthode dont je t'ai parlée plus haut.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
25 mai 2011 à 16:01
Perso, je conseille fortement l'utilisation du ; à la place de l'espace... surtout si la personne qui t'envoie les données et ton collègue.

Pour remplir ton datagrid, le plus simple c'est de lui donner une DataSource.


List produits;

/* on rempli la liste de produit avec la méthode vue plus haut */

monDataGrid.DataSource = produits;




Sébastien FERRAND
Lead Developpeur
Microsoft Visual C# MVP 2004 - 2009
Blog Photo
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
25 mai 2011 à 16:17
Il est vrai que l'utilisation de l'espace comme séparateur n'est pas des plus sûrs. Il suffit d'imaginer un produit genre "Cherry Coke" et tu te retrouves à caster "Coke" en int ;)

Pour aller encore plus loin, on pourrait imaginer que ton pote te monte un XML. Toi derrière tu fais ta classe de mapping en tant que [Serializable], et tu n'auras alors plus qu'à appeler la déserialisation pour remplir tes objets. C'est propre et pratique, mais c'est peut-être pas la solution la plus rapide à mettre en place ^^
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
25 mai 2011 à 16:19
rien de tel qu'un petit fichier CSV... le XML c'est lourd... le ratio poids/informations ne sera pas en sa faveur...

tout ça n'est qu'un point de vu basé sur mon expérience.


Sébastien FERRAND
Lead Developpeur
Microsoft Visual C# MVP 2004 - 2009
Blog Photo
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
25 mai 2011 à 16:33
Je me suis rappelé qu'on avait utilisé la sérialisation/dé-sérialisation dans le cadre d'une interop de système, et que ça avait plutôt bien fonctionner. C'était donc une piste que je me devais de mentionner ici ;)
0
Rejoignez-nous