c # сохранение textbox.text в текстовый файл. TXT-файл не распознает символ конца строки - PullRequest
0 голосов
/ 17 января 2011

У меня следующий код:

void AppendText(string txt)
{
    txt = txt + "\r\n";
    Textbox1.AppendText(txt);
    Textbox1.Select(Textbox1.Text.Length,0);
}

//....

void someFunction()
{
    //...
    string log = @"C:\log.txt";
    using (FileStream fs = new FileStream(log, FileMode.Create))
    {
        using (StreamWriter sw = new StreamWriter(fs))
        {
            sw.Write(Textbox1.Text);
        }
    }
    //...
}  

Проблема в поле Textbox1.Text в форме, "\ r \ n" работает нормально, но когда я копирую Textbox1.Text в журнал.TXT, log.txt не имеет новой строки, где он должен быть.Вместо этого есть странный характер, такой как «[]», где «\ r \ n».Я думаю, что проблема заключается в sw.Write (tbox.text) правильно?Но я не знаю, как это исправить.Кто-нибудь может мне помочь?Помощь очень ценится.Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 17 января 2011

Я думаю, что Textbox создает символы Unicode (два байта на символ).В каком формате вы читаете данные?ASCII Unicode UTF?

Если я правильно помню, / n / r старый трюк для записи символа новой строки в строку, но в каком формате и что это значит?Environment.Newline намного лучше и будет работать на сборках Windows Mobile / Unix.

Обычно я создаю переменную уровня класса br с контентом environment.newline в качестве содержимого, создающего гораздо более короткий код.

1 голос
/ 17 июня 2011

Ваш код правильный. Просто добавьте sw.Close(); после sw.Write(Textbox1.Text);

1 голос
/ 17 января 2011

Вы должны сделать так.

string log = @"C:\log.txt";     
using (FileStream fs = new FileStream(log, FileMode.Create))     
{
     using (StreamWriter sw = new StreamWriter(fs))
     {
         foreach(string line in Textbox1.Lines)
             sw.Write(line+sw.NewLine);
     }
 } 
...