Перехват консольного вывода и запись в TextBox - C#
Формулировка задачи:
Мне необходимо сделать графическую оболочку для компилятора на C#. В частности необходимо вывести результат компиляции в TextBox. Разобрался в классе Process, все работает как нужно. Однако, весь текст из консоли выводится в TextBox без разделения на строки т.е. вместо конца строки - ничего (пробела или иного символа также нет)
Пытался преобразовывать кодировки - не помогло. (в некоторых случаях получал иероглифы)
Вот код:
...
Process process = new Process();
process.StartInfo.FileName = Form1.pascal_path;
process.StartInfo.Arguments = Form1.pascal_arguments;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.StandardOutputEncoding = Encoding.GetEncoding(866);
process.OutputDataReceived += new DataReceivedEventHandler(outPutDataRecieved);
process.Start();
process.BeginOutputReadLine();
...
static void outPutDataRecieved(object sendingProcess, DataReceivedEventArgs outLine)
{
compile_add(outLine.Data);
}
public static void compile_add(string s)
{
textBox1.AppendText("\n"+s);
}Решение задачи: «Перехват консольного вывода и запись в TextBox»
textual
Листинг программы
textBox1.AppendText(s + Environment.NewLine);