|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Доступ к файламФайлы Под файломпонимается именованная область внешней памяти компьютера (жесткого диска, дискеты, компакт-диска и т. п.). Любой файл имеет три характерные особенности. Во-первых, у него есть имя, что дает возможность программе работать одновременно с несколькими файлами. Во-вторых, он содержит компоненты одного типа. Типом компонентов может быть любой тип Delphi, кроме файлов. Иными словами, нельзя создать «файл файлов». В-третьих, длина вновь создаваемого файла никак не оговаривается при его объявлении и ограничивается только емкостью устройств внешней памяти. Файловый тип можно задать одним из трех способов: <имя> = File of <тип>; <имя> = TextFile; <имя> = File; Здесь <имя> – имя файлового типа (правильный идентификатор); File, of – зарезервированные слова (файл, из); TextFile – имя стандартного типа текстовых файлов; <тип> – любой тип Delphi, кроме файлов. Например: Type Product = record Name: String; Code: Word; Cost: Comp end; Text80 = File of String [80]; Var Fl: File of Char; F2: TextFile; F3: File; F4: Text80; F5: File of Product; В зависимости от способа объявления можно выделить три вида файлов:
В представленном выше примере F1, F4 и F5 – типизированные файлы, F2 – текстовый файл, F3 – нетипизированный файл. Вид файла определяет способ хранения в нем информации. Однако в Delphi нет средств контроля вида ранее созданных файлов. При объявлении уже существующих файлов программист должен сам следить за соответствием вида объявления характеру хранящихся в файле данных. Доступ к файлам Файлы становятся доступны программе только после выполнения особой процедуры открытия файла. Эта процедура заключается в связывании ранее объявленной файловой переменной с именем существующего или вновь создаваемого файла, а также в указании направления обмена информацией: чтение из файла или запись в него. Файловая переменная связывается с именем файла в результате обращения к стандартной процедуре AssignFile: AssignFile (<ф.п.>, <имя файла>); Здесь <ф. п. > – файловая переменная (правильный идентификатор, объявленный в программе как переменная файлового типа); <имя файла> – текстовое выражение, содержащее имя файла и, если это необходимо, маршрут доступа к нему. Инициализировать файл означает указать для этого файла направление передачи данных. В Delphi можно открыть файл для чтения, для записи информации, а также для чтения и записи одновременно. Для чтения файл инициализируется с помощью стандартной процедуры Reset: Reset (<ф.п.>); Здесь <ф. п. > – файловая переменная, связанная ранее процедурой AssignFile с уже существующим файлом. При выполнении этой процедуры дисковый файл подготавливается к чтению информации. В результате специальная переменная-указатель, связанная с этим файлом, будет указывать на начало файла, то есть на компонент с порядковым номером 0. В Delphi разрешается обращаться к типизированным файлам, открытым процедурой Reset (то есть для чтения информации), с помощью процедуры Write (то есть для записи информации). Такая возможность позволяет легко обновлять ранее созданные типизированные файлы и при необходимости расширять их. Для текстовых файлов, открытых процедурой Reset, нельзя использовать процедуру Write или WriteLn. Если делается попытка инициировать чтение из несуществующего файла, возбуждается исключительная ситуация. Чтобы проверить, существует ли дисковый файл, можно использовать стандартную функцию FileExists, которая возвращает True, если указанный при обращении к этой функции файл существует, и False – если не существует. Например: Begin if FileExists(FileName) then ... // Файл существует Else ... // Файл не существует end; Следующая стандартная процедура инициирует запись информации в файл, связанный с файловой переменной <ф. п. >: Rewrite (<ф.п.>); Процедурой Rewrite нельзя инициировать запись информации в ранее существовавший дисковый файл: при выполнении этой процедуры старый файл (если он был) уничтожается и никаких сообщений об этом в программу не передается. Новый файл подготавливается к приему информации и его указатель принимает значение 0. Следующая стандартная процедура инициирует запись в ранее существовавший текстовый файл для его расширения, при этом указатель файла устанавливается в его конец: Append (<ф.п.>) Процедура Append применима только к текстовым файлам, то есть их файловая переменная должна иметь тип TextFile. Процедурой Append нельзя инициировать запись в типизированный или нетипизированный файл. Если текстовый файл ранее уже был открыт с помощью процедуры Reset или Rewrite, использование процедуры Append приведет к закрытию этого файла и открытию его вновь, но уже для добавления записей. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.006 сек.) |