Retour chariot c# [Résolu]

- - Dernière réponse : Whismeril
Messages postés
12399
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 décembre 2018
- 29 mai 2013 à 11:04
Bonjour

Donc voila mon problème, j'aimerai écrire un fichier csv , ce que j'ai réussi a faire cependant j'aimerai ecrire ligne par ligne mais je n'arrive pas a le faire .. tout ce met a la suite pour l'instant
voila mon code :
fil = Convert.ToString(listBox4.Items[x]) + "   " + DateTime.Now.ToString("dd/MM/yy HH:mm:ss") + "," + "\r\n";


J'ai utilisé \n ou \r aussi a la place de \r\n et un environement.newline mais je n'arrive pas a les faire fonctionner..

La variable fil est écrite dans le fichier , c'est une variable string .

Toute aide est la bienvenu =D
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
Messages postés
12399
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 décembre 2018
3
Merci
En effet la méthode writeline du streamwriter est la plus simple.
J'aurais du commencer par te demander comment tu écris dans ton fichier

Pour le stringbuilder tu peux essayer cet exemple
            StringBuilder stb = new StringBuilder();
            stb.AppendLine("Ajoute une ligne entière");
            stb.Append("Ajoute un début de ligne,");
            stb.AppendLine(" puis la fin de ligne");
            label1.Text = stb.ToString();


On voit que les retours chariots sont générés par \r\n, cest peut être au moment de l'export dans le fichier qu'il y a un un soucis

Whismeril

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Whismeril
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Dernière intervention
19 août 2014
1
Merci
Bonjour,

Ton retour chariot aurait dû fonctionné même sans l'appel de la méthode WriteLine(..). Et encore plus avec Environment.NewLine
Tu as dû avoir un autre souci dans ton code.

Bonne journée,

Billou_13

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Commenter la réponse de billou_13
Messages postés
12399
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 décembre 2018
0
Merci
Bonjour tu peux essayer un StringBuiler avec la méthode AppendLine.


Whismeril
Commenter la réponse de Whismeril
0
Merci
J'ai vu sa oui mais je ne comprend pas comment faire .
Enfaite j'aimerai savoir si ya un caractere ou quelque chose comme sa ( genre /n ou endl en c++ pour aller a la ligne) que je puisse mettre a la fin de mon string pour que automatiquement a l'ecriture cela retourne a la ligne?
Commenter la réponse de kakashi68
0
Merci
c'est bon j'ai reussi a trouver , si sa intérresse quelqu'un :
using (StreamWriter file = new StreamWriter(namefile,true))
                             {
                                 file.WriteLine(csv);
                             }
Commenter la réponse de kakashi68
0
Merci
Pour l'écriture sa marche niquel merci

Par contre une autre question :
dans mon programme je dois entré une adresse IP et j'aimerai mettre un message d'erreur quant on écrit mal cette adresse ex : 172.3.16 ou 172.16.54.86.35 donc il faut un adresse a 4 " membre"
savez vous comment je pourai détecté l'erreur ?
J'ai pensé a compté le nombre de . dans la chaine de caractère mais je n'est rien trouvé sur internet :/
Donc si vous savez toute réponce est bien a prendre =D
Commenter la réponse de kakashi68
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Dernière intervention
19 août 2014
0
Merci
Bonjour,

Tu trouveras ta solution avec l'utilisation des expressions régulières via la méthode RegEx.IsMatch(string, string, Regexoptions).

En allant sur le net pour chercher une expression régulière pour les adresses IP, tu trouveras plein d'exemples: ici.

Ce qui te donne à peu près le code suivant (à paufiner, j'ai pas tout tester):
string pattern = @"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b";
if (!RegEx.IsMatch(text, pattern, RegexOptions.IgnoreCase))
{
// Ce n'est pas une adresse IP...
}


Bon dev,

Billou_13

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Commenter la réponse de billou_13
Messages postés
12399
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 décembre 2018
0
Merci
Je rejoins billou, les regex c'est fait pour ça.

Whismeril
Commenter la réponse de Whismeril
0
Merci
J'ai essayer ta m'etonne mais RegEx est une erreur ,

puis d'autre chose que j'ai trouver mais cela ne fonctionne pas
Regex reg = new Regex(@"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b", RegexOptions.IgnoreCase);
                //string pattern = @"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b";
                if (!reg.IsMatch(textBox1.Text))
                {
                    MessageBox.Show("Write a valide IP address ex: xxx.xxx.xxx.xxx ");
                }


donc j'ai du faire une erreur si jamais vous savez ou sa serai cool =D
Commenter la réponse de kakashi68
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Dernière intervention
19 août 2014
0
Merci
Bonjour,

Je suis désolé, j'ai pas trop le temps de corriger mon code.
Ce ne doit pas être grand chose (je ne sais pas si c'est pas les \d qui faut remplacer par [0-9] car pas bien compris par le framework), tu peux trouver facilement des testeurs d'expressions régulières sur le net et trouver la bonne expression.

J'ai donc google-isé "valider adresse ip c#".

Et à ma grande, il existe une fonction dans le framework (v4.5) qui valide une adresse IP: IPAddress.TryParse(string, out IPAddress).

Si tu n'as pas cette version du framework, je te renvoie à un autre résultat de recherche sur les sites Codes-Sources: ici.

Bonne journée,

Billou_13

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Commenter la réponse de billou_13
0
Merci
if (Regex.IsMatch(textBox1.Text, @"^((25[0-5]|2[0-4]\d|1?\d?\d).){3}(25[0-5]|2[0-4]\d|1?\d?\d)$"))
                {
}


voila comme sa sa marche pour les erreur type xxx.xxx.xxx.xxx.xxx donc a 5 membre ou plus mais pas pour moins de 4 , dans mon cas ce n'est pas grave car il y a un autre message si il y en a moins de 3

Merci de vos réponce =D
Commenter la réponse de kakashi68
Messages postés
12399
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 décembre 2018
0
Merci
Ha c'est à peu près celle que j'allais t'envoyer!

il y a ce code qui permet de tester les regex, c'est pratique

Pour billou, \d ça marche, par contre je n'ai jamais vu \b.

Whismeril
Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.