Retour chariot c# [Résolu]

kakashi68 - 28 mai 2013 à 09:59 - Dernière réponse : Whismeril 11406 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention
- 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 

12 réponses

Répondre au sujet
Whismeril 11406 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 28 mai 2013 à 11:48
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Whismeril
billou_13 874 Messages postés jeudi 4 mars 2004Date d'inscription 19 août 2014 Dernière intervention - 28 mai 2013 à 12:13
+1
Utile
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
Whismeril 11406 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 28 mai 2013 à 10:11
0
Utile
Bonjour tu peux essayer un StringBuiler avec la méthode AppendLine.


Whismeril
Commenter la réponse de Whismeril
kakashi68 - 28 mai 2013 à 10:41
0
Utile
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
kakashi68 - 28 mai 2013 à 11:33
0
Utile
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
kakashi68 - 28 mai 2013 à 16:31
0
Utile
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
billou_13 874 Messages postés jeudi 4 mars 2004Date d'inscription 19 août 2014 Dernière intervention - 28 mai 2013 à 16:40
0
Utile
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
Whismeril 11406 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 28 mai 2013 à 18:13
0
Utile
Je rejoins billou, les regex c'est fait pour ça.

Whismeril
Commenter la réponse de Whismeril
kakashi68 - 29 mai 2013 à 08:34
0
Utile
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
billou_13 874 Messages postés jeudi 4 mars 2004Date d'inscription 19 août 2014 Dernière intervention - 29 mai 2013 à 08:47
0
Utile
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
kakashi68 - 29 mai 2013 à 10:15
0
Utile
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
Whismeril 11406 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 29 mai 2013 à 11:04
0
Utile
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.