Aide pour ecrire dans un fichier qui existe
Résolu
dana2019
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour, j'essaie une liste des personnes à la fin de mon fichier texte mais cela m'affiche:
System.Collections.Generic.List`1[TPCsharp.Medecin]
quelqu'un peut-il m'aider je suis nouveau dans le langage
System.Collections.Generic.List`1[TPCsharp.Medecin]
quelqu'un peut-il m'aider je suis nouveau dans le langage
public void ajouterUnmedecin() { string prenom; string nom; int code; Console.WriteLine("Prenom"); prenom = Console.ReadLine(); Console.WriteLine("Nom"); nom = Console.ReadLine(); while (true) { Console.WriteLine("Identificateur"); code = Convert.ToInt32(Console.ReadLine()); try { //On lance une exception si le code n'est pas compris entre 100 et 999 while (code < 100 || code > 999) { throw new Exception("le code doit être compris entre 100 et 999"); } break; } catch (Exception e) { Console.WriteLine(e.Message); } } try { //verifie si le code existe dejà foreach (var medecin in _listeMedecin) { if (medecin.verifier(code)) { throw new Exception("Erreur"); } } } catch (Exception e) { Console.WriteLine(e.Message); } //ajout d'un médecin _listeMedecin.Add(new Medecin(prenom, nom, code)); using (StreamWriter fichier = new StreamWriter("medecins.txt",true)) { //écriture dans le fichier fichier.WriteLine(_listeMedecin); } }
A voir également:
- Aide pour ecrire dans un fichier qui existe
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
6 réponses
Salut,
avant d'écrire quoi que ce soit dans un fichier il faut avant tout l'ouvrir(le lire).
Je ne voit pas non plus l'intérêt de recourir à la console. Créer une chaîne de caractère et l'afficher pour contrôler serait plus efficace et rendrait votre code plus clair en se concentrant sur l'essentiel: l'écriture dans le fichier.
un exemple détaillé ici:
https://openclassrooms.com/fr/courses/218202-apprenez-a-programmer-en-c-sur-net/218129-lire-et-ecrire-dans-un-fichier
avant d'écrire quoi que ce soit dans un fichier il faut avant tout l'ouvrir(le lire).
Je ne voit pas non plus l'intérêt de recourir à la console. Créer une chaîne de caractère et l'afficher pour contrôler serait plus efficace et rendrait votre code plus clair en se concentrant sur l'essentiel: l'écriture dans le fichier.
un exemple détaillé ici:
https://openclassrooms.com/fr/courses/218202-apprenez-a-programmer-en-c-sur-net/218129-lire-et-ecrire-dans-un-fichier
Bonjour
@Rodala
Parce que les bons cours n’abordent les interfaces graphiques qu’après avoir fait maîtriser les concepts de base.
Dans son apprentissage, Dana n’en est pas encore là.
D’autre part, ton exemple parle de byte, de lecteur hexadécimal etc, alors que Dana veut écrire un fichier Ascii....
@Dana,
cette
Par défaut ToString retourne le type de la variable.
montre que _listeMedecin est une List<T> où T est du type Medecin de ton projet TPCsharp.
Tu ne peux pas réécrire la méthode ToString de List<T> donc la solution est d’itérer tous les éléments (avec une boucle for, foreach ou while), et des les écrire un à un dans le fichier.
Pour les écrire, soit tu as surchargé la méthode ToString de la classe médecin et tu t’en sert, soit tu devra construire une string composée des éléments que tu veux voir dans le fichier (avec string.format ou stringbuilder par exemple)
@Rodala
Je ne voit pas non plus l'intérêt de recourir à la console.
Parce que les bons cours n’abordent les interfaces graphiques qu’après avoir fait maîtriser les concepts de base.
Dans son apprentissage, Dana n’en est pas encore là.
D’autre part, ton exemple parle de byte, de lecteur hexadécimal etc, alors que Dana veut écrire un fichier Ascii....
@Dana,
cette
fichier.WriteLine(_listeMedecin);écrit dans le fichier ce que retourne la méthode ToString() de la classe de la variable _listeMedecin. Comme
Console.WriteLine(_listeMedecin);
Par défaut ToString retourne le type de la variable.
System.Collections.Generic.List`1[TPCsharp.Medecin]
montre que _listeMedecin est une List<T> où T est du type Medecin de ton projet TPCsharp.
Tu ne peux pas réécrire la méthode ToString de List<T> donc la solution est d’itérer tous les éléments (avec une boucle for, foreach ou while), et des les écrire un à un dans le fichier.
Pour les écrire, soit tu as surchargé la méthode ToString de la classe médecin et tu t’en sert, soit tu devra construire une string composée des éléments que tu veux voir dans le fichier (avec string.format ou stringbuilder par exemple)
dans ma classe médecin je n'ai pas de méthode ToString() mais regarde ce que j'ai fais est cela écrit dans mon fichier j'aimerai savoir si c'est une possibilité aussi :
public void ajouterUnmedecin() { string prenom; string nom; int code; Console.WriteLine("Prenom"); prenom = Console.ReadLine(); Console.WriteLine("Nom"); nom = Console.ReadLine(); while (true) { Console.WriteLine("Identificateur"); code = Convert.ToInt32(Console.ReadLine()); try { //On lance une exception si le code n'est pas compris entre 100 et 999 while (code < 100 || code > 999) { throw new Exception("le code doit être compris entre 100 et 999"); } break; } catch (Exception e) { Console.WriteLine(e.Message); } } try { //verifie si le code existe dejà foreach (var medecin in _listeMedecin) { if (medecin.verifier(code)) { throw new Exception("Erreur"); } } } catch (Exception e) { Console.WriteLine(e.Message); } _listeMedecin.Add(new Medecin(prenom, nom, code)); try { using (StreamWriter fichier = File.AppendText("medecins.txt")) { fichier.Write(code); fichier.Write(';'); fichier.Write(prenom); fichier.Write(';'); fichier.Write(nom); fichier.WriteLine(); fichier.Close(); } } catch (Exception e) { Console.WriteLine(e.Message); } //ajout d'un médecin }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question