Как отменить AssignCrt(вывод)?

В программе TurboPascal я использовал преимущество обработанного DOS вывода и использовал управляющий символ Tab для формирования столбцов в выводе:

const Tab = #09;
...
Writeln(X, Tab, F(X));

Тем не менее, когда я попытался добавить pause -подобная функциональность через ReadKey позвонить и использовать Crt модуль обработал вывод, и вышеприведенный оператор начал писать общий символ табуляции вместо формирования столбцов на табуляциях.

Как я выяснил, источником этого явления является AssignCrt(Output) вызов при инициализации модуля, который переопределяет означает, как Writeln работает - он больше не использует DOS для вывода, но либо видео BIOS или прямой доступ к видеопамяти (в зависимости от DirectVideo значение) вместо.

Как я могу изменить все AssignCrt делает? Насколько я знаю из документации, там Crt Модуль не предоставляет средств для восстановления нормальной работы.

1 ответ

Решение

Crt Драйвер текстового файла не поддерживает tab персонаж в turbo-pascal, Чтобы вернуть назад стандарт dos Водитель, сделайте следующее:

Назначают (Output,''); // Восстанавливает стандартный вывод DOS

Позже вы можете восстановить драйвер Crt:

AssignCrt (выход);

Другие вопросы по тегам