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 :

fichier csv & datagrid


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Avril 2011
    Messages : 34
    Par défaut fichier csv & datagrid
    Bonjour
    j'ai un fichier csv composé de 3 champ ( nom du produit , type,quantité) (ex : RedBull,B.F,10000) je voudrai bien lire dans mon fichier et si la quantité est inférieur a 100 j'affiche un message Box )

    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
    using System;
    using System.Collections;
    using System.IO;
    using System.Text;
    using System.Windows.Forms;
     
    namespace Projets_Machine_2011
    {
        public partial class csv : Form
        {
            public csv()
            {
                InitializeComponent();
            }
     
            private void Afficher_Click(object sender, EventArgs e)
            {
                dataGridView1.Columns.Add("Nom", "Nom");
                dataGridView1.Columns.Add("type", "type");
                dataGridView1.Columns.Add("quantité", "quantité");
     
                CSV csvFile = new CSV("produits.csv");
                ArrayList produits = csvFile.Getproduits();
     
                for (int i = 0; i < produits.Count; i++)
                {
                    object[] record = (object[])produits[i];
                    dataGridView1.Rows.Add(record);
                }
            }
     
            private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
            {
     
            }
            public class CSV
            {
                private StreamReader reader;
                private ArrayList list_produits;
                private ArrayList _record;
     
                public CSV(string filename)
                {
                    reader = new StreamReader(filename);
                }
     
                public ArrayList Getproduits()
                {
                    list_produits = new ArrayList();
                    _record = new ArrayList();
     
                    string line = "";
     
                    while ((line = reader.ReadLine()) != null)
                    {
                        object[] record = line.Split(',');
                        list_produits.Add(record);
                    }
     
                    return list_produits;
                }
            }
        }
    }
    Merci de m'aider

  2. #2
    Membre émérite Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 823
    Par défaut
    Bonjour
    Qu'est-ce que tu n'arrives pas à faire exactement ?

    Après j'ai quelques remarques :
    ArrayList est plutôt abanndoné... on a tendance à utiliser des List<T> où T est le type d'objet contenu dans la liste (pour toi des Object[]).
    Plutôt que d'utiliser ces tableaux tu ferais mieux d'utiliser des objets "Article" ayant les attributs qui vont bien et retourner une List<Article>.
    Tu pourrais ensuite faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaList.FindAll(a=>a.Quantite <= 100)
    qui te donnerait tous les éléments à 100 ou moins. (FW > 2.0)
    Enfin tu veux afficher un message à chaque articke où qt<100 ? En tant que user ça me gaverait d'avoir à cliquer 50x sur un pop-up qui m'averti que mon produit est en qt critique ! Après c'est peut-être une demande faite dans le CDC...

  3. #3
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Avril 2011
    Messages : 34
    Par défaut
    Je sais bien que les ArrayList est un petit peu abandonné , j'ai essayé de faire autrement mais le probleme j'ai pas assez de temps pour comprendre comment ca marche les List<T>
    et sinon je voudrai afficher un message box automatique des que le champ qt<100 ( c'est imposé dans le CDc)
    et sinon vous auriez pas un tuto pour utiliser des objets "Article" qui peuvent me retourner une List<Article>.

  4. #4
    Membre émérite
    Avatar de Gurdil le nain
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 468
    Par défaut
    Citation Envoyé par d_sandra Voir le message
    Je sais bien que les ArrayList est un petit peu abandonné , j'ai essayé de faire autrement mais le probleme j'ai pas assez de temps pour comprendre comment ca marche les List<T>
    et sinn je voudrai afficher un message box automatique des que le champ qt<100 ( c'est imposé dans le CDc)
    et sinon vous auriez pas un tuto pour utiliser des objets "Article" qui peuvent me retourner une List<Article>.
    Un cours sur C# et la POO en gros ?

    Les listes sont très simples d'utilisations, je te laisse consulter la doc msdn là dessus : Lien

    Pour la programmation objet, je pense que les premiers chapitres de ce cours pourraient t'être utiles : Lien

  5. #5
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Avril 2011
    Messages : 34
    Par défaut
    et sinn je pourrai pas réssoudre mon probléme ts en utilisant les ArrayList ?

  6. #6
    Membre émérite Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 823
    Par défaut
    Ton problème c'est retrouver les articles où qt < 100 ? en 2 heures tu changes tes ArrayList en List<T> (c'est presque pareil), tu crées une classe objets et tu mappes tes lignes de csv dans ta collection d'objet. ensuite tu utilises le bout de code que je t'ai déjà donné et ça roule !

    Et quand je dis 2h, je suis très large. Ca doit être faisable en 30 minutes (quand on connais un peu les bases de la POO et de la lecture de fichier)

    Mais bon, une ArrayList qui contient des objets "article", c'est envisageable... tu peux juste y ajouter des objets "patate" et des objets "filet de truite marinée"... ce qui pose des problèmes ensuite car tu dois vérifier tes types avant de faire des traitements... et pourquoi pas y ajouter des integers...

Discussions similaires

  1. Mise à jour d'une table avec un fichier csv
    Par blackangel dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 26/05/2005, 14h46
  2. Importation de fichier CSV vers une base Interbase
    Par PrinceMaster77 dans le forum ASP
    Réponses: 3
    Dernier message: 15/03/2005, 15h18
  3. Mettre a jour BD avec fichier csv
    Par Looping94510 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 07/02/2005, 18h56
  4. Sortir un fichier csv sur base d une requete
    Par Freeman_80 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 12/01/2005, 11h21
  5. Réponses: 2
    Dernier message: 14/05/2004, 12h55

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