Автор | Сообщение |
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 16.06.09 10:56. Заголовок: Вывод в файл
Есть системная утилита. Результаты своей работы выдает на экран (в CMD). Из командной строки можно перенаправить в файл > c:\my.txt Как можно из проги сделать такое перенаправление ?
|
|
|
Ответов - 6
[только новые]
|
|
|
| Администратор
|
Пост N: 1165
Зарегистрирован: 23.05.05
|
|
Отправлено: 16.06.09 11:41. Заголовок: Функция qout() вывод..
Функция qout() выводит на stdout При перенаправлении вывода stdout перенаправляется в файл Т.е, надо использовать qout()
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 16.06.09 11:55. Заголовок: Признаться, я не пон..
Признаться, я не понял каким образом использовать Qout() и OutStd(). Нельзя ли пример ?
|
|
|
|
| постоянный участник
|
Пост N: 691
Зарегистрирован: 09.10.06
|
|
Отправлено: 16.06.09 12:07. Заголовок: Название "вывод ..
Название "вывод в файл" не совсем информативное. Вот классический пример от Przemekа (конечно Harbour), разбирайтесь request HB_GT_CGI_DEFAULT proc main(x) local hOut, hProc, cData, nLen if x == nil hProc := hb_ProcessOpen( hb_progname() + " X",, @hOut, @hOut, .T. ) if hProc != -1 ? "process open" cData := Space( 1000 ) while ( nLen := Fread( hOut, @cData, Len( cData ) ) ) > 0 ? "read[" + left( cData, nLen ) + "]" enddo ? "nLen = 0 -> process finished with exit code:", ; HB_ProcessValue( hProc ) ? endif else for nLen := 1 to 5 outstd( "line " + hb_ntos( nLen ) ) hb_idleSleep( 0.3 ) next outstd( "EOF" ) errorlevel( 57 ) endif return Если xHb такого не поддерживает, см. примеры и сырцы MiniGUI (pipe)
|
|
|
|
| постоянный участник
|
Пост N: 692
Зарегистрирован: 09.10.06
|
|
Отправлено: 16.06.09 12:32. Заголовок: fil пишет: Признать..
fil пишет: цитата: | Признаться, я не понял каким образом использовать Qout() и OutStd(). Нельзя ли пример ? |
| Может не в тему, но пример test2.prg цитата: | PROCEDURE main( s1, s2 ) fErase( "test.log" ) hb_run( "test.exe " + s1 + " " + s2 + " >test.log" ) |
| test.prg цитата: | PROCEDURE main( s1, s2 ) if ! Empty( s1 ) OutStd( s1 ) endif if ! Empty( s2 ) QOut( s2 ) endif |
| Использовать test2.exe par1 par2
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 16.06.09 13:53. Заголовок: Делаю по всякому, вс..
Делаю по всякому, все одно файл результата нулевой длины
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 16.06.09 14:14. Заголовок: Все, получилось. Изв..
Все, получилось. Извини, Петр. Я бестолковый - забывал параметр
|
|
|
|