Как отменить 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 (выход);