Это скорее путевые заметки при изучении Free Pascal и Lazarus, чем учебник. Собственно, учебники по Паскалю и Делфи есть, поэтому изучая Free Pascal и Lazarus нужно разобраться чем они отличаются от Turbo Pascal7 и Делфи7. Надеюсь, что эти заметки будут полезны.
Free Pascal является 32-х и 64-разрядным компилятором Pascal.
Компилятор и Run-Time библиотеки доступны для многих операционных систем, в том числе: DOS, Linux,
Windows, FreeBSD.
Free Pascal разработан с целью, насколько это возможно, обеспечения совместимости исходников с Turbo Pascal 7.0 и Delphi 7 (хотя эта цель еще не достигнута), а также улучшить эти языки такими элементами, как оператор перегрузки. И, в отличие от своих предшественников, он поддерживает несколько платформ.
Lazarus - это библиотеки классов Free Pascal для эмуляции Delphi. Free Pascal - это компилятор языка Паскаль, свободно распространяемый на условиях GNU Public License (GPL), который работает на многих платформах: Linux, Win32, OS/2, 68K и других. Free Pascal позволяет писать программы, используя объектно-ориентированный синтаксис Delphi. Так что Lazarus - это то недостающее звено, которое открывает возможности кроссплатформной разработки Delphi-подобных программ. В отличие от языка Java, на котором однажды написанные программы могут исполняться на разных платформах с помощью виртуальной машины, программы на Lazarus и Free Pascal могут быть скомпилированы без изменений в "родной" код различных платформ.
Для изучения FreePascal пользовался документацией (папка \doc\), приложенной к дистрибутиву (eng), потому что не удалось найти в Интернете перевода для работы Offline.
Конечно, прежде всего в учебниках, из которых мне нравятся: А.М. и В.А. Епанешнековы - Turbo Pascal 7.0 и книги В.В.Фаронова. На этом сайте можно скачать учебник-справочник (Паскаль, основы Делфи), в котором много примеров выполнения учебных заданий. Полезно встроить в среду IDE Free Pascal русифицированный справочник по Borland Pascal (как это сделать - см здесь ). Если нужен файл Turbo.tph ( руссифицировал студент МГТУ им. Баумана Шепель Олег Борисович, известный в Internet как VideoLord.)
Чтобы пользоваться подпрограммами, описанными в модулях, нужно ознакомиться с заголовками этих подпрограмм. Поэтому здесь размещены интерфейсы некоторых модулей (хотя пользы от них мало). В Лазарусе тексты модулей доступны (как и в Делфи) если навести курсор на имя модуля (в предложении uses), нажать Ctrl а заием щелкнуть появившуюся ссылку. (А без Ctrl - виден путь к модулю на диске)
<?
//Copyright: akaghost@ua.fm
$ttbl=array("А"=>"Рђ","Б"=>"Р‘","В"=>"Р’","Г"=>"Р“","Д"=>"Р”","Е"=>"Р•","Ё"=>"РЃ",
"Ж"=>"Р–","З"=>"Р—","И"=>"Р�","Й"=>"Р™","К"=>"Рљ","Л"=>"Р›","М"=>"Рњ","Н"=>"Рќ",
"О"=>"Рћ","П"=>"Рџ","Р"=>"Р ","С"=>"РЎ","Т"=>"Рў","У"=>"РЈ","Ф"=>"Р¤","Х"=>"РҐ",
"Ц"=>"Р¦","Ч"=>"Р§","Ш"=>"РЁ","Щ"=>"Р©","Ъ"=>"РЄ","Ы"=>"Р«","Ь"=>"Р¬","Э"=>"Р",
"Ю"=>"Р®","Я"=>"РЇ","Ї"=>"Р‡","І"=>"Р†","Є"=>"Р„","Ў"=>"РЋ","а"=>"Р°","б"=>"Р±",
"в"=>"РІ","г"=>"Рі","д"=>"Рґ","е"=>"Рµ","ё"=>"С‘","ж"=>"Р¶","з"=>"Р·","и"=>"Рё",
"й"=>"Р№","к"=>"Рє","л"=>"Р»","м"=>"Рј","н"=>"РЅ","о"=>"Рѕ","п"=>"Рї","р"=>"СЂ",
"с"=>"СЃ","т"=>"С‚","у"=>"Сѓ","ф"=>"С„","х"=>"С…","ц"=>"С†","ч"=>"С‡","ш"=>"С€",
"щ"=>"С‰","ъ"=>"СЉ","ы"=>"С‹","ь"=>"СЊ","э"=>"СЌ","ю"=>"СЋ","я"=>"СЏ","і"=>"С–",
"ї"=>"С—","є"=>"С”","ў"=>"Сћ");
$string=join("", file("input.win"));
echo strtr($string, $ttbl);
?>
program win1251_UTF_8;
var
f1, f2: Text;
s: string;
begin
if paramcount<2 then
begin
writeln('Usage: win1251_UTF_8 infile outfile');
readln; halt(1);
end;
Assign(f1, ParamStr(1));
Reset(f1);
Assign(f2, ParamStr(2));
Rewrite(f2);
while not EOF(f1) do
begin
ReadLn(f1, s);
WriteLn(f2, AnsiToUtf8(s));
end;
Close(f1); Close(f2);
end.