Перехват консольного вывода и запись в 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д