Hi!
Потребовалось тут перехватить вывод в консоль и перенаправить его RichEdit в GUI программе.
Вывод в консоль длится долго, поэтому хочется чтобы в RichEdit появлялись символы из консоли сразу после начала вывода, а не после его завершения.
Как это можно сделать?
При помощи костылей как-то так (псевдо rapidQ basic)
Код
'consout.exe
'имитация долгого вывода в консоле
t=1000
print 1110
sleep t
print 2220
sleep t
print 3330
'--------
далее
Код
CompileStr$="consout.exe >123.txt" ' с перенаправлением вывода в файл
run (CompileStr$) ' запускаем
while FILEEXISTS("fin1")=0 ' пока не создан файл флаг завершения
ttt$=LoadString("123.txt") 'читаем файл
LogEdit.AddStrings(ttt$) 'добавляем в Richedit
sleep 0.5 ' пол-секунды
wend
Но на самом деле файл 123.txt блокируется на время записи , и пока не освободится прочитать из него невозможно.
без костылей через CreatePipe можно, но тоже с блокировкой.
А как бы читать тогда, когда запись еще идет?