![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вывод информации в консоль
TUser © (2005-12-14 13:21:00)Есть консольное приложение, вывод которого может быть перенаправлен в файл. Возникает проблема, если приложение было завершено нештатно (Ctrl+C). Ведь данные пишутся в буфер, и если выведенного текста мало, то в буфере и остаются, не попадая в файл. FreePascal при этом как-то делает так, что данные пишутся на диск при "нештатном" завершении программы. Можно ли как-то это победить?
program test;
{$apptype console}
var i: integer;
begin
Write ('a');
for i:=-MaxInt to MaxInt do
begin end;
end.
uses:
test > t
Ctrl+C
type t
Leonid Troyanovsky (2005-12-14 17:21:00) [1]
> TUser © (14.12.05 17:09) [3]
> Да, подсуну я свой хендлер. Надо в нем как-то прописать
> освобождение буфера и запись
FlushFileBuffers ?
Для хендла от GetStdHandle.
--
Regards, LVT.
TUser (2005-12-14 17:09:00) [2]
> umbra © (14.12.05 13:33) [2]
Да, подсуну я свой хендлер. Надо в нем как-то прописать освобождение буфера и запись данных на диск. Пробовал там
CloseHandle(GetStdHandle(std_output_handle));
но без толку.
umbra (2005-12-14 13:33:00) [3]см. справку по
SetConsoleCtrlHandler
Digitman (2005-12-14 13:32:00) [4]
> в буфере и остаются, не попадая в файл
сам-то понял что сказал ?