{$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.
Рассмотрим для примера еще несколько настроек.