1.2.41. $I или $INCLUDE : Включать информацию компилятора

На верх  Назад  Вперёд

В следующем формате:

{$INCLUDE %XXX%}

директива {$INCLUDE} вставляет строковую константу в исходный код.

Здесь XXX может быть одним из следующих значений:

DATE
Вставляется текущая дата. Она будет отформатирована как YYYY/MM/DD.

FPCTARGET
Вставляется имя целевого процессора. (не рекомендуется, лучше используйте FPCTARGETCPU).

FPCTARGETCPU
Вставляется имя целевого процессора.

FPCTARGETOS
Вставляется имя целевой операционной системы.

FPCVERSION
Вставляется номер текущей версии компилятора.

FILE
Вставляется имя файла, в котором найдена директива.

LINE

Вставляется номер строки, на которой находится директива.

LINENUM

Вставляется номер строки, на которой находится директива. В этом случае, результат это целое число, а не строка.

TIME
Вставляется текущее время, в формате HH:MM:SS.

Если XXX имеет другое значение, то предполагается что это имя переменной окружения. Её значение будет получено из окружения, если переменная существует. Если нет, то будет вставлена пустая строка. В результате эта директива будет генерировать макрос со значением, определённым в XXX, как если бы это была строковая константа в исходном коде (или, в случае LINENUM , целое число).

Например, следующая программа

Program InfoDemo;
Const User = {$I %USER%};
begin
  Write('Эта программа была откомпилирована в ', {$I %TIME%});
  Writeln(' на ', {$I %DATE%});
  Writeln('пользователем ', User);
  Writeln('Версия компилятора: ', {$I %FPCVERSION%});
  Writeln('Целевой процессор: ', {$I %FPCTARGET%});
end.

выведет следующее:

Эта программа была откомпилирована в 17:40:18 на 1998/09/09

пользователем michael

Версия компилятора: 0.99.7

Целевой процессор: i386

Замечание:

Следует отметить, что включение DATE и TIME не заставит компилятор перекомпилировать файл каждый раз: используется  дата и время последней компиляции.