Программа вводит список анкет, сохраняет его в файле, читает список анкет из файла, позволяет добавить анкету к списку, редактировать заданную номером анкету. Программа использует очень простое и понятное меню. Текст программы (для Turbo Pascal7) см здесь
При компиляции программы в FPC обнаружились проблемы:
procedure FindFirst(const path: PathStr;attr: Word;var f: SearchRec); procedure FindClose(var f: SearchRec); procedure FindNext(var f: SearchRec); SearchRec = packed record SearchPos : TOff; SearchNum : LongInt; DirPtr : Pointer; SearchType : Byte; SearchAttr : Byte; Fill : Array[1..03] of Byte; Attr : Byte; Time : LongInt; Size : LongInt; Reserved : Word; Name : String; SearchSpec : String; NamePos : Word; endПришлось изменить предложение uses и процедуру:
Program menu1;
Uses crt,dos; {WinDOS;}
. . . . . . .
Procedure FileList;
var DirInfo : SearchRec;
Begin
FindFirst('*.DAT', Archive, DirInfo); {Находим 1-й файл с расширением DAT}
{ Аналог команды DIR *.DAT }
While DosError = 0 Do {если больше нет таких файлов, то DosError <> 0 }
Begin
WriteLn(' ',DirInfo.Name); {выводим на экран имя найденного файла}
FindNext(DirInfo); {Находим следующий файл с расширением DAT}
End;
FindClose(DirInfo);
end
После этого программа заработала. Интересно, что если убрать FindClose(DirInfo); то программа компилируется в Турбо7 и в FPC. FindClose в FPC рекомендуется, чтобы освободить память, выделенную для var DirInfo : SearchRec; Короче, ясно, что зря я связался с WinDOS. А все потому, что пользуюсь русифицированной справкой не для Turbo Pas7 , а для BP (Borland Pascal, где есть модуль WinDOS)