| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > Почему так работает? |
| Автор: Ukrajinec 11.2.2016, 19:43 | ||||||
| Доброго времени суток! Идея такова, читается файл построчно, пока не кончится. Вот код который получил методом проб и ошибок.
Теперь вопрос: почему если убрать строчку
или изменить условие цикла while
читается пустая строчка (null), а не прекращается цикл? |
| Автор: _zorn_ 12.2.2016, 03:59 |
| С шарпом не знаком, но мне кажется что во время проверки читается строка. Т.е. по факту в строке line = reader.ReadLine(); читается уже третья строчка при первом проходе. На втором 6-я ну и т.д. Надо использовать что то вроде while(!reader.endOfFile()). ЗЫ. С таким подходом удивляюсь почему в конце цикла еще одну точно такую же проверку не добавили... на всякий случай |
| Автор: chupachups 12.2.2016, 09:58 | ||
потому что надо https://msdn.microsoft.com/ru-ru/library/system.io.textreader(v=vs.110).aspx читать и писать правильно:
Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Pochemu-tak-rabotayet-id56bcba8eae2015d75d8b4567#findElement_E7045_56bd828fae201508556e4121_0 |
| Автор: solowey 12.2.2016, 20:46 | ||
Не согласен с предыдущим оратором. В мсдн так написано:
Предыдущий вариант, так же можно использовать... И скорее всего по коду идет тройное считывание: 1 раз - while (reader.ReadLine() != null) 2 раз - if (reader.ReadLine() == null) break; 3 раз - line = reader.ReadLine(); На мой взгляд, в richTextBox2 должны попадать не все строки. Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Pochemu-tak-rabotayet-id56bcba8eae2015d75d8b4567#findElement_E7045_56be1a92ae2015531f6e4083_0 |
| Автор: chupachups 12.2.2016, 23:26 |
| насчет записи в richTextBox2 согласен, туда я даже не смотрел. НО: 1) по условию задачи "читается файл построчно, пока не кончится" - ни через-строчно, ни через-два-три-и.т.д.-строчно 2) следует из первого, раз уж построчно, то зачем почем зря Peek-ать? ИМХО моё предложение более читаемо и интуитивно понятно нежели через Peek 3) вообще сам автор по сабжу сильно смахивает на студента 1 курса, посему не вижу особого смысла выяснять - как быстрее и красивее, ибо преподу нужно чтоб работало как задумано, и строки не терялись Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Pochemu-tak-rabotayet-id56bcba8eae2015d75d8b4567#findElement_E7045_56be3fddae201523476e4154_0 |