Перехват консольного вывода и запись в 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);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5