{$ifdef tp}
count : word;
i,z : integer;
{$else}
count,i,z : longint;
{$endif}
Однако можно обойтись и без них, выбрав подходяший вариант.
---- Текст программы: ----
program count_lines;
{
Программа подсчитывает число строк в файле.
Из библиотеки RunTime FreePascal, модифицирована
}
uses dos,crt;
type td = array[1..10000] of byte;
var
lines : longint;
s : searchrec;
f : file;
d : ^td;
{$ifdef tp}
count : word;
i,z : integer;
{$else}
count,i,z : longint;
{$endif}
begin
lines:=0;
new(d); // Выделяется память для массива 10000 байт.
if paramcount<1 then // если число параметров при запуске меньше 1
begin
writeln('Usage: ',paramstr(0),' filename.ext [filename.ext] ...');
writeln(' Multiple File Names and Wild Cards Allowed:');
writeln(' Example: lines *.cpp stdio.h *.asm');
halt(1); // Выход в систему с кодом возврата = 1
end;
for i:=1 to paramcount do
begin
findfirst(paramstr(i),archive,s); // найти первый файл, соответствующий
// шаблону paramstr(i), инфу поместить в s
while (doserror=0) do
begin
write('Scanning: ',s.name); // напечатать Scanning: и имя файла
assign(f,s.name); // "соединить" файл с файловой переменной f
reset(f,1); // Файловый указатель поставить на начало файла
while not(eof(f)) do // цикл - пока не достигнут конец файла
begin
blockread(f,d^,10000,count); // пытаться читать из файла в буфер d^
// 10000 байт. Фактически прочтено count
for z:=1 to count do // сканировать прочтенные count байт
if d^[z]=10 then inc(lines); // если очередной байт есть переход на
// новую строку, то увеличить lines на 1.
end;
writeln(' ',lines+1,' lines'); // печатаю число строк в файле
lines:=0; // обнуляю lines, чтобы обработать след. файл
close(f); // закрываю файл.
findnext(s); // ищу следующий файл,соответствующий шаблону paramstr(i)
end;
end;
dispose(d); // освобождаю память, выделенную для массива 10000 байт
write('Press Enter to exit');
readln; // ожидаю нажатия клавиши Enter
end.
После замены директив условной компиляции на:Компилятор FPC, как и Турбо7 и Делфи может настраиваться. Однако настройки, включенные по умолчанию, как обычно, подходят в большинстве случаев, так что пользователь и не вспоминает о них. Но если нам, например, желательно, чтобы компилятор сообщал не только об ошибках, но и выдавал предупреждения о сомнительных конструкциях, используем опцию:
-vwh
где w - предупреждения (warnings), h - подсказки (hints).
Создадим файл fpc.cfg, в котором запишем -vwh и поместим его в папку prob, где находится файл lines.pp. Туда же поместим файл для вызова компилятора lin.cmd (или lin.bat), в котором запишем:
E:\FPC2.0.4\bin\i386-win32\fpc.exe lines.pp
Теперь для компиляции достаточно запустить (открыть) файл lin.cmd. Чтобы видеть сообщения компилятора, нужно делать это в режиме сеанса DOS.
Рассмотрим для примера еще несколько настроек.