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 :

Listview et Csv. [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2012
    Messages : 11
    Par défaut Listview et Csv.
    Bonsoir.

    Je code actuellement une application de transfert ftp, et j'utilise pour cela une listview remplie du nom des lieux ainsi que de l'adresse ip du serveur ftp concerné.

    Afin de ne pas devoir toujours rentrer à la main les adresses ip, je sauvegarde ma listview dans un fichier csv, car le xml n'est pas mon fort.

    Cela donne quelque chose comme cela :



    Cela fonctionne parfaitement.

    Par contre, j'aimerai pouvoir charger ce fichier dans ma listview, et j'ai une erreur pour le moment:


    L'index se trouve en dehors des limites du tableau.
    Voici le bout de code qui pose problème:

    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
     
    private void button6_Click_1(object sender, EventArgs e)
            {
     
     
                StreamReader sr = new StreamReader("Config.csv");
     
                string[] splitdataLine;
     
                int i=0;
     
                while (sr.Peek() >= 0)
                {
                    ListViewItem[] Items = new ListViewItem[10];
                    splitdataLine = sr.ReadLine().Split(',');
                    Items[i] = new ListViewItem(splitdataLine[1]);
                    Items[i].SubItems.Add(splitdataLine[2]);
                    listView1.Items.Add(Items[i]);
                    i++;
                }
            }
    Si quelqu'un a une idée, je suis preneur

    Merci d'avance pour votre aide, bonne nuit.

  2. #2
    Membre émérite
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    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 : Août 2004
    Messages : 651
    Par défaut
    L'indice des tableaux en c# commence à 0 et non à 1.
    Donc il faut corriger :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Items[i] = new ListViewItem(splitdataLine[0]);
    Items[i].SubItems.Add(splitdataLine[1]);

    Ceci dit, je ne vois pas trop l'intérêt de créer arbitrairement 10 ListItemView pour chaque ligne... Un seul suffit.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2012
    Messages : 11
    Par défaut
    Merci de ta réponse.

    Le soucis est que lorsque je met le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Items[i] = new ListViewItem(splitdataLine[0]);
                    Items[i].SubItems.Add(splitdataLine[1]);
    ça me fait la même erreur. Et pourtant, j'ai vérifié la place dans l'index des colonnes, mais rien n'y fait.

  4. #4
    Membre émérite
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    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 : Août 2004
    Messages : 651
    Par défaut
    Il y a 2 points à voir dans ma réponse...
    • Le premier au sujet de la ligne lue et découpée : la première est indexée à 0, la seconde à 1, etc (et non 1, 2, ...))
    • Le second point, c'est la création inutile de 10 ListViewItem. Il suffit d'en créer un seul puis de l'ajouter au listeview, c'est tout ! Donc pas de variable i, et remplacement du tableau de ListViewItem par un ListViewItem.


    Pour finir, c'est bien de nous donner l'erreur, mais c'est encore mieux de nous indiquer à quelle ligne ça tombe !

  5. #5
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    while (sr.Peek() >= 0) 
    {   
      splitdataLine = sr.ReadLine().Split(','); 
      ListViewItem Item = new   ListViewItem(splitdataLine[0]);
      if (splitdataLine.Length>1) Item.SubItems.Add(splitdataLine[1]); 
      listView1.Items.Add(Item);
    }

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2012
    Messages : 11
    Par défaut
    Re, et désolé pour la gène :s
    La nuit blanche a laissé des traces sur mon esprit x)

    L'erreur se situait à la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Items[i] = new ListViewItem(splitdataLine[0]);
    J'ai remplacé les 10 listview items par 1 comme indiqué.

    Par contre, j'arrive maintenant à un résultat (merci Graffito ) , l'application entre les lieux et ip en nom de colonnes, mais pas en entrées des dites colonnes.

    Encore merci pour votre aide.

  7. #7
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Par contre, j'arrive maintenant à un résultat , l'application entre les lieux et ip en nom de colonnes, mais pas en entrées des dites colonnes.
    c'est-à-dire ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/05/2012, 14h27
  2. Exporter ListView vers CSV
    Par Zhamy dans le forum C#
    Réponses: 4
    Dernier message: 22/10/2011, 23h19
  3. ListView en format CSV
    Par Zhamy dans le forum C#
    Réponses: 0
    Dernier message: 27/04/2010, 18h09
  4. ListView->Items->Clear() !!! Qques probl de perf
    Par Nicolas_a69 dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/08/2002, 11h49
  5. ListView
    Par SnickeursMan dans le forum Composants VCL
    Réponses: 2
    Dernier message: 14/08/2002, 10h42

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