J'ai un problème avec le C # Stream Writer . J'utilise le code suivant:
//Constructor
public EditorTXTFile
{
FileStream f = File.Create(System.IO.Directory.GetCurrentDirectory() + "\\Output.txt");
f.Close();
}
//Function AddText
public void AddLogFileText(string text)
{
string text = "l1\n\rl2\n\rl3\n\nl5";
StreamWriter writer = new StreamWriter(System.IO.Directory.GetCurrentDirectory() + "\\Output.txt", true);
writer.Write(text);
writer.Close();
}
Lorsque j'ouvre Output.txt, il indique\n ou\ra █ (ce qui signifie que le symbole ne peut pas être affiché) et que la chaîne entière est sur une ligne ... Plus tard, si le texte devait passer la fonction, je ne peux donc pas écrire le texte avec .WriteLine parce que je ne sais pas si la chaîne réelle est sur la même ligne ou dans une nouvelle ligne.
Qu'est-ce qui me fait mal?
Merci pour toute aide.
Utilisez Environment.NewLine
comme séparateur de ligne ou "\r\n"
si vous voulez le faire à la main.
Le séparateur de ligne (newLine) est \r\n
et non \n\r
,
changez votre texte comme:
string text = "l1\r\nl2\r\nl3\r\nl5";
Essayez string text = @"l1\n\rl2\n\rl3\n\nl5";
. Pour éviter le bourrage de personnage.
j'ai essayé d'écrire une classe et seprate "\ n" s mais j'ai trouvé la zone de texte riche !!
ouais! Ça marche:
RichTextBox rch = new RichTextBox();
rch.Text = cmn;
foreach (string l in rch.Lines)
strw.WriteLine(l);
Vous pouvez utiliser Environment.NewLine
comme ceci:
streamWriter.Write(String.Concat(Enumerable.Repeat(Environment.NewLine, n).ToArray()));
C'est un format binaire:
writer.Write(text);
C'est un format séquentiel de ligne:
writer.WriteLine(text);
Vous devez utiliser le format WriteLine
...