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 :

probleme dans mon code [Débutant]


Sujet :

C#

  1. #1
    Membre actif
    Homme Profil pro
    Jean ZAY - Jarny
    Inscrit en
    Juin 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Jean ZAY - Jarny
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 25
    Par défaut probleme dans mon code
    Bonjour,

    Je sollicite votre aide car j'ai un petit soucis dans mon code.


    Voici le code :

    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
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
     
    namespace taxatel
    {
     
      public partial class SupprimerGroupe : Form
      {
        string chemin = "c:\\Projet\\Liste_Groupe.txt";
        string IDGroupe;
        public SupprimerGroupe()
        {
          InitializeComponent();
        }
     
        private void IDGroupeSupprimer_TextChanged(object sender, EventArgs e)
        {
          IDGroupe = IDGroupeSupprimer.Text;//Place la valeure de la TextBox dans une variable
        }
     
        private void AnnSupprimerGroupe_Click(object sender, EventArgs e)
        {
          this.Hide();//Cache la form actuelle
        }
     
        private void ValSupprimerGroupe_Click(object sender, EventArgs e)
        {
     
          string tempPath = Path.GetTempFileName();
          using (var reader = new StreamReader(chemin))
          {
            using (var writer = new StreamWriter(File.OpenWrite(tempPath)))
            {
              int counter = 0;
              while (!reader.EndOfStream)
              {
                string line = reader.ReadLine(); 
                if (!_deletedLines.Contains(counter))
                {
                  writer.WriteLine(reader.ReadLine());
                }
                ++counter;
              }
            }
          }
          if (File.Exists(tempPath))//Regarder si un fichier avec le chemin "tempPath" existe
          {
            File.Delete(chemin);//Supprime le fichier avec le chemin "chemin"
            File.Move(tempPath, chemin);//Réplace le fichier avec le chemin "tempPath" par le chemin "chemin"
          }
     
     
     
          IDGroupeSupprimer.Text = "";//Remet la valeure de la textBox vide
          this.Hide();//Cache la form actuelle
        }
      }
    }
    L'erreur se produit sur la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!_deletedLines.Contains(counter))
    Le message de l'erreur

    Le nom '_deletedLines' n'existe pas dans le contexte actuel
    Merci de m'aider

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2009
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2009
    Messages : 317
    Par défaut
    Dans le code que tu nous fourni, je ne vois en aucun endroits une déclaration de ta variable _deletedLines.

  3. #3
    Membre émérite Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    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 : 822
    Par défaut
    Primo, il faut utiliser les balises de code, c'est plus lisible (#)...

    Ensuite, dans ce code, deletedLines n'est effectivement jamais déclaré. normal que tu aies cette erreur. D'où vient ce deletedLines ?

  4. #4
    Membre actif
    Homme Profil pro
    Jean ZAY - Jarny
    Inscrit en
    Juin 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Jean ZAY - Jarny
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 25
    Par défaut
    bon j'ai modifier un peu le code... 0 erreur, mais un petit soucis , je créer des groupe via une autre form et mon fichier se rempli petit a petit. mais lors que je veux effacer un groupe, il me retourne pas du tout ce que je veux...

    Exemple du fichier Liste_Groupe.txt une fois rempli:

    200
    102;103;104

    204
    107;108;109

    225
    111;112;113

    Donc ce qui commence par 2** c'est le numéro du groupe et ce qui commence par 1** c'est le numéro de poste.J'ai inséré une ligne vide pour plus de lisibilité dans le fichier.

    Avec mon code :

    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
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
     
    namespace taxatel
    {
     
        public partial class SupprimerGroupe : Form
        {
            string chemin = "c:\\Projet\\Liste_Groupe.txt";
            string IDGroupe;
            public SupprimerGroupe()
            {
                InitializeComponent();
            }
     
            private void IDGroupeSupprimer_TextChanged(object sender, EventArgs e)
            {
                IDGroupe = IDGroupeSupprimer.Text;//Place la valeure de la TextBox dans une variable
            }
     
            private void AnnSupprimerGroupe_Click(object sender, EventArgs e)
            {
                this.Hide();//Cache la form actuelle
            }
     
            private void ValSupprimerGroupe_Click(object sender, EventArgs e)
            {
     
               string tempPath = Path.GetTempFileName();
               using (var reader = new StreamReader(chemin))
                {
                    using (var writer = new StreamWriter(File.OpenWrite(tempPath)))
                    {
                        int counter = 0;
                        while (!reader.EndOfStream)
                        {
                            string line = reader.ReadLine(); 
                            if (line == IDGroupe)
                            {
                                reader.ReadLine();
                            }
                            else
                            {
                                writer.WriteLine(reader.ReadLine());
                            }
                            ++counter;
     
                        }
                    }
                }
                if (File.Exists(tempPath))//Regarder si un fichier avec le chemin "tempPath" existe
                {
                    File.Delete(chemin);//Supprime le fichier avec le chemin "chemin"
                    File.Move(tempPath, chemin);//Réplace le fichier avec le chemin "tempPath" par le chemin "chemin"
                }
     
     
     
                IDGroupeSupprimer.Text = "";//Remet la valeure de la textBox vide
                this.Hide();//Cache la form actuelle
            }
        }
    }
    Je veux supprimer le groupe "200" ainsi que les postes qui lui correspond.

    Mais ça me retourne :

    204

    111;112;113

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2009
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2009
    Messages : 229
    Par défaut
    reader.ReadLine() : lire une ligne et avancer vers le suivant, ton erreur c'est lorsque ton test (line = IDGroupe) est false il ne faut pas utiliser la méthode ReadLine() :
    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
    
                           ... 
                            string line = reader.ReadLine();
                            if (line == IDGroupe)
                            {
                                reader.ReadLine();
                            }
                            else
                            {
                                writer.WriteLine(line);
                            }
                            ...
                        writer.Close();
                        writer.Dispose();
    Aussi, il faut penser à fermer le StreamWriter et StreamReader à la fin de ton traitement.

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 415
    Par défaut
    Citation Envoyé par aguetat Voir le message
    Aussi, il faut penser à fermer le StreamWriter et StreamReader à la fin de ton traitement.
    Les deux classes sont disposables : avec les using, les fermetures sont faites automatiquement (c'est même le rôle des using).

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2009
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2009
    Messages : 229
    Par défaut
    Citation Envoyé par Alikendarfen Voir le message
    Les deux classes sont disposables : avec les using, les fermetures sont faites automatiquement (c'est même le rôle des using).
    Merci pour l'info, oui c'est vrai c'est pas la peine de fermer le stream lorsqu'on utilise "using"

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 415
    Par défaut
    Je crois que vue la structure du fichier, il faut les deux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    string line = reader.ReadLine();
    if (line == IDGroupe)
    {
       reader.ReadLine();
    }
    else
    {
       writer.WriteLine(line);
       writer.WriteLine(reader.ReadLine());
    }

  9. #9
    Membre actif
    Homme Profil pro
    Jean ZAY - Jarny
    Inscrit en
    Juin 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Jean ZAY - Jarny
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 25
    Par défaut
    Merci à vous!! je vous remercie de votre aide précieuse

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

Discussions similaires

  1. probleme dans mon code client
    Par amateurc dans le forum Réseau
    Réponses: 0
    Dernier message: 10/11/2008, 19h15
  2. [positionnement] probleme dans mon code
    Par mackean dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 19/11/2007, 10h51
  3. un petit probleme dans mon code
    Par hanene_z dans le forum C
    Réponses: 9
    Dernier message: 22/12/2006, 17h06
  4. Probleme dans mon code recherche dans un fichier Xml
    Par dederfred dans le forum Delphi
    Réponses: 11
    Dernier message: 21/10/2006, 16h51
  5. [VBA-E]Probleme dans mon code ??? merci de votre aide
    Par gregantibes dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/04/2006, 18h24

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