Gestion de fichier en C#

Signaler
Messages postés
163
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
3 février 2012
-
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
-
Bonjour à tous,

J'utilise ce code la pour ecrire a la suite d'un fichier (je precise que j'utilise le Framework 2.0)

File.AppendAllText(nameFile, str.ToString());

le champ str est un tableau a une dimension comprenant du texte dedans (str = "eoijfeiofjeifjeifj")
le fichier est déjà rempli il contient cela :

"Essai Essai Essai"

Une fois le code execute je me retrouve avec cela dans le fichier :

"Essai Essai EssaiSystem.String[]"

Mais d'ou peut bien provenir ce System.String[]

Merci. ++ Nexus

Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.

7 réponses

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
41
Salut, c'est normal la méthode ToString est une méthode virtuelle et son comportement par défaut est de renvoyer le nom du type de l'objet, c'est ce qu'elle fait là.. ce que tu veux toi, c'est appeller ToString sur chaque élément contenus dans le tableau.
Messages postés
163
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
3 février 2012

Existerais il une solution du Type AppendAllLines qui permettrais de rajouter un tableau de string dans un fichier.

A part solution du foreach.

Merci. ++ Nexus

Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
Messages postés
163
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
3 février 2012

voila le code en foreach


foreach (
String s
in str)
{



File.AppendAllText(nameFile,
"\n");



File.AppendAllText(nameFile, s);


}

Le problème est que cette fonction ne fait pas de retour a la ligne dans le fichier même avec '\n' de précisé

Auriez vous une idée

Merci. ++ Nexus

Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
98
Oui : ouvrir le fichier avec un StreamWriter et se servir de WriteLine dans la boucle.
Ca aurat de plus l'avantage d'éviter la rafale d'ouverture/fermeture que tu provoques actuellement avec l'utilisation de AppendAllText.

/*
coq
MVP Visual C#
*/
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
10
Pour le retour à la ligne, utilise : "\n\r" à la place du '\n'
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
98
Dans l'autre sens : \r\n ;-)

/*
coq
MVP Visual C#
*/
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
41
De toute façon y'a interêt à suivre le conseille de Coq, c-à-d utiliser StreamWriter.ConsoleWriteline, pour eviter les nombreuse ouvertures et fermetures de fichiers.