2012-06-11 2 views
4

В программе TurboPascal я взял преимущество DOS обрабатывается вывод и использовать Tab управляющий символ для формирования столбцов в выводе:Как un-AssignCrt (выход)?

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

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

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

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

ответ

9

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

Assign (Output, ''); // восстанавливает стандартный дус-OUTPUT

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

AssignCrt (выход);

+0

Вау, это было просто, спасибо! –