Программа вводит список анкет, сохраняет его в файле, читает список анкет из файла, позволяет добавить анкету к списку, редактировать заданную номером анкету. Программа использует очень простое и понятное меню. Текст программы (для 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)