C # - ReadLine () в текстовом поле - PullRequest
0 голосов
/ 22 ноября 2011

Прошу прощения за то, что задаю нубистские вопросы, но я один:).

Я могу написать файл .txt, используя Write или WriteLine, который читает весь TextBox.Проблема в том, когда я читаю это.Я не могу прочитать это с помощью ReadLine.Это дает весь текст в одну строку.Должно быть проблема с чтением, потому что в NotePad я получаю файл правильно.

В чем причина этого довольно странного поведения, и как я могу изменить его?метод, содержащий StreamReader

StreamReader streamreader = new StreamReader(openfiledialog.FileName);

textbox.Text = "";

while (!streamreader.EndOfStream)
{
    string read_line = streamreader.ReadLine();
    textbox.Text += read_line + "\n";
}

streamreader.Close();

метод, содержащий StreamWriter

StreamWriter streamwriter = new StreamWriter(savefiledialog.FileName);

streamwriter.Write(textbox.Text);

streamwriter.Close();

Заранее спасибо.

ОБНОВЛЕНО: ReadToEnd работал

Ответы [ 2 ]

0 голосов
/ 22 ноября 2011

Пара возможностей здесь.

  1. Текст в файле не UTF-8, поэтому его необходимо преобразовать в UTF-8, а затем присвоить текстовому полю.
  2. Текстовое поле имеет ограничение по количеству символов, которое необходимо увеличить
  3. Ширина текстового поля.Обтекание текста может иметь значение.

Обычно вам следует использовать ReadToEnd, если вы хотите, чтобы весь текст содержал текст за один прогон, и ReadLine, если вы хотите 1 строку.Разница здесь в кодировке файла.1 строка в текстовом редакторе может отличаться от другой.Некоторые текстовые редакторы перед отображением преобразуют текст в другие кодировки, а некоторые - нет.Рекомендую Notepad ++, потому что он в нижней части подскажет, в какой кодировке находится файл, и позволит вам изменить кодировку и сохранить файл для тестирования.

.net основан на кодировке UTF-8 для строк, поэтомуразница в кодировании текста может иметь большое значение.

Best of Luck

0 голосов
/ 22 ноября 2011

Не видя никакого кода, лучше всего предположить, что вы используете разные разделители строк между текстовым полем и текстовым файлом.

Я думаю, вам нужно либо отформатировать данные, чтобы убедиться, что данные получают правильный разделитель для источника, либо изменить разделитель новой строки для текстового поля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...