| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > StandardOutput |
| Автор: Incvizitor 28.5.2009, 08:11 | ||||
| Здравствуйте форумчане, Столкнулся с проблемой считывания с консоли, вот код который записывает вывод:
Он все записывает, но только когда консольное приложение уже выполнит всю свою работу. Пробовал измени на:
Но так записывает только одну (первую) строчку, а хотелось бы построчно. Если кому несложно, поделитесь примером как нужно правильно, построчно записывать. Спасибо. |
| Автор: Vilandrew 28.5.2009, 09:45 | ||
Может так?
|
| Автор: Лен 28.5.2009, 11:34 | ||
.ReadToEnd() в потоке считывает его содержимое до конца (закрытия), а .ReadLine() - только в одну строку. В этом суть методов. Я бы на вашем месте определил какой-либо символ/команду/строку-терминатор, прекращающий ввод и написал так:
Вместо log в проверке лучше использовать log.ToUpper().Trim() и т.п. |
| Автор: Incvizitor 28.5.2009, 16:27 | ||
Спасибо ребята, я еще вчера с while сделал, но все равно криво получилось. Воспользовался примером Лен, как бы пишет. Хотелось бы спросить, а вот строка-терминатор (сори, впервые услышал), здесь нужно указать строку, которая пишется самой последней? И если скажем с конце пишется Process Stop - Time: [и_какое_то_время], то можно указать просто?:
Спасибо! |
| Автор: Incvizitor 3.7.2009, 18:07 | ||
| Приветствую, Вернусь к старому, так как не хочет оно работать так как нужно. Существует ли возможность выполнять код:
В другом потоке, то есть отдельно от Process.Start() ? Если да, то поделитесь кодом. Спасибо! |
| Автор: Incvizitor 4.7.2009, 01:18 |
| Вопрос снят, разобрался, оказывается для асинхронной работы нужен был OutputDataReceived, всем спасибо за внимание. |