Procedure TForm1.Button1Click(Sender: TObject); //обработка кнопки
Var H:Integer; S,Z: Array [1..5] of Char; //объявление переменных Begin Try H:=FileCreate('c:\prim.dat'); //открытие создаваемого файла S:='12345';FileWrite(H,S,SizeOf(S));{вывод S}FileClose(H);//закрытие файла H:=FileOpen('c:\prim.dat',fmOpenRead); //открытие файла для чтения FileSeek(H,‑4,2);//пропуск назад от конца файла 4 байта, текущая позиция 2 FileRead(H,Z,3);//вывести из файла три байта, начиная с текущего второго Label1.Caption:=Copy(Z,1,3); //вывод Z в метку (будет текст: 234) Finally FileClose(H); {закрытие файла в любом случае} End; End; Обслуживание внешних файлов и каталогов Эти программы хранятся в модулях System и SysUtils (большинство функции возвращают True при успешном выполнении). ChDir(S) ‑ устанавливает текущий каталог S. ChangeFileExt(Const S1, S2): String ‑ изменяет расширение файла S1 на S2 CreateDir(S):Boolean ‑ создает новый каталог с указанным путем. DateTimeToFileDate(D:TDateTime):Integer ‑ преобразует D в формат Dos для даты и времени, используемый в процедурах FileAge, FileGetDate, FileSetDate, FindFirst,FindNext. DeleteFile(Const S):Boolean ‑ удаляет файл S, возвращая True при успехе. DirectoryExists(S):Boolean ‑ возвращает True, если есть каталог S. DiskFree/DiskSize (D:byte):Integer ‑ возвращает размер свободной/всей области диска D (0 ‑ текущий диск, 1 ‑ A, 2 ‑ B, 3 ‑ C,...). При ошибке возвращается -1. ExpandFileName(S):String ‑ возвращает полный путь и имя файла S. ExpandUNCFileName(S):String ‑ возвращает в формате UNC полный путь в сети и имя файла S. ExtractFileDir(S):String ‑ возвращает путь к каталогу из полного имени S. ExtractFileDrive(S):String ‑ возвращает имя диска из полного имени S. ExtractFileExt(S):String ‑ возвращает расширение из имени S. ExtractFileName(S):String ‑ возвращает имя файла с расширением из S. ExtractFilePath(S):String ‑ возвращает путь к каталогу с именем диска из полного имени файла, указанного параметром S. ExtractRelativePath(S1,S2):String ‑ преобразует полный путь поиска S2 в строку относительного пути поиска S1. Пути могут содержать «..\».
ExtractShortPathName(S):String ‑ преобразует путь поиска S в формат Dos. FileAge(S):Integer ‑ возвращает время создания файла S. FileDateToDateTime(D:Integer):TDateTime ‑ преобразует в значение типа TDateTime формат Dos для дат и времени, используемый в процедурах FileAge, FileGetDate, FileSetDate, FindFirst,FindNext. FileExists(S):Boolean ‑ возвращает True, если есть файл под именем S. FileGetAttr(S):Integer ‑ возвращает атрибуты файла S. Наличие атрибутов можно проверить сложением операцией And над faXXXX (п.1.8.4). FileSearch(S1,S2):String ‑ ищет файл S1 в списке каталогов S2 в формате DOS для Path через «;» и возвращает полный путь или пустую строку (нет). FileSetAttr(S;A:Integer):Integer ‑ задает атрибуты (комбинация faXXXX (п.1.8.4), соединенных операциями Or.) и возвращает 0 при успешном выполнении, иначе - код ошибки Windows. FindClose(Var F:TSearchRec) ‑ прерывает поиск процедурами FindXXXX. FindFirst(S;A:Integer;Var F:TSearchRec):Integer ‑ поиск первого файла, удовлетворяющего шаблону S (например, C:\base\*.dbf). и возвращает 0 при успешном выполнении, иначе - код ошибки Windows. Описание найденного файла помещается в переменную F типа TsearchRec: Time: Integer {дата и время создания файла в формате DOS}; Size Integer {размер файла в байтах}; Attr: Integer {атрибуты}; Name: TFileName {имя файла}; ExcludeAttr:Integer; FindHandle:THandle; FindData:TWin32FindData. FindNext(Var F:TSearchRec):Integer ‑ поиск следующего файла. ForceDirectories(S):Boolean ‑ создает каталог с подкаталогами S. GetCurrentDir:String ‑ возвращает имя текущего каталога. GetDir(D:byte;var S) ‑ возвращает в S имя текущего каталога диска D (0 ‑ текущий диск, 1 ‑ A, 2 ‑ B, 3 ‑ C,...). IncludeTrailingBackSlash(S):String ‑ добавляет в конец S «\», если его нет. IsPathDelimiter(S,I:Integer):Boolean ‑ возвращает True, если «\» в позиции I MatchesMask(S1,S2):Boolean ‑ возвращает. True, если файл с именем S1 соответствует маске файлов S2 с подстановочными символами «*»,»?». MkDir(S) ‑ создание каталога с полным путем в S. ProcessPath(S1;Var D:Char;Var S2;Var S3) ‑ из файла S1 выделяется имя диска (D), путь поиска (S2), имя файла (S3).
RenameFile(S1,S2):Boolean ‑ переименование файла S1 в S2. RmDir(S), RemoveDir(S):Boolean ‑ удаляет пустой каталог с именем в S. SetCurrentDir(S):Boolean ‑ устанавливает текущий каталог S. Вопросы для самопроверки и контроля Вопросы для самопроверки 1. Каков общий порядок работы с файлами? 2. Что является записью текстового файла? Контрольные вопросы 1. Можно ли защитить файл от изменений? 2. Можно ли найти запись по ее порядковому номеру? 3. Каково назначение функции Eof? 4. Каково назначение файловой процедуры Read? 5. Каково назначение файловой процедуры Write? 6. Каково назначение файловой процедуры AssignFile? 7. Каково назначение файловой процедуры Reset? 8. Каково назначение файловой процедуры Seek? 9. Какие подходы существуют при работе с файлами? 10. Для чего предназначена процедура Rewrite? 11. Для чего предназначена процедура Flush? 12. Для чего предназначена процедура IOResult? 13. Какой функцией можно определить размер файла?
Динамические структуры данных Общие сведения Динамические структуры ‑ структуры, для которых выделяется динамическая память в процессе выполнения программы, используются указатели (п.1.1.8) и операции над указателями (п.1.2.7). Обычно они используются для динамического формирования списка - логически связанного набора записей, каждая из которых состоит из двух частей: адресной (содержит адреса, на логически связанные с ней, записей) и информационной (поля записи с данными). Лучшим средством организации динамических структур является использование класса TList (п. 2.2.6).
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|