Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Файлы
Файл, это именованная структура данных, представляющая собой последовательность элементов данных одного типа, причем количество элементов последовательности практически не ограничено. В первом приближении файл можно рассматривать как массив переменной длины неограниченного размера.
Способы работы с файлами в системе Delphi 7
При работе с файлами в системе Delphi 7 возможны два принципиально разных подхода. Первый состоит в использовании стандартных подпрограмм (они имелись еще в классической версии Паскаля тридцатилетней давности), позволяющих записывать содержимое переменных в файлы и считывать их обратно из файлов в переменные. К этим средствам добавились также библиотеки стандартных функций по работе с файлами, основанные на системных функциях Windows.
В связи с появлением версии Object Pascal и реализации понятия класса в языке появились средства объектной работы с данными. Это второй подход к работе с файлами в системе Delphi 7. В свою очередь в рамках каждого из подходов применяются также существенно различающиеся приемы. Например, при классическом подходе в работе с файлами могут использоваться прямые обращения к функциям Windows или обращения к функциям BIOS.
Общая технология работы с файлами в Delphi 7
Несмотря на все различия, независимо от используемого подхода технология работы с файлами в системе Delphi 7 требует определенного порядка действий.
1. Прежде всего, файл должен быть открыт. Это означает, что операционная система «дает добро» на внесение изменений в данный файл (например, на запись данных) и следит, чтобы обращения других пользователей и программ к этому файлу (если компьютер подключен к сети) выполнялись корректно. Так, считывание данных из файла, в который другой пользователь в этот момент вносит изменения, невозможно.
При открытии файла системе управления файлами обычно сообщается, в каком режиме файл будет открыт: планируется ли вносить изменения в его содержимое или же файл открывается только для считывания из него данных. В последнем случае к файлу, как правило, могут обращаться и другие пользователи. Обычно указывается также, какова внутренняя структура открываемого файла — это требуется, чтобы выполнять операции с ним максимально быстро.
После того как файл успешно открыт, в программу возвращается его идентификатор — переменная, которая будет использоваться для идентификации этого файла во всех процедурах обработки.
2. Начинается работа с файлом. Это может быть считывание из него данных, запись, поиск и другие операции.
3. Файл закрывается. Это означает, что он снова доступен другим приложениям без ограничений. Кроме того, закрытие файла гарантирует, что все внесенные в него изменения не пропадут, потому что для повышения скорости работы результаты промежуточных действий обычно сохраняются в специальных буферах операционной системы.
1.Работа с файловыми данными
Информация, хранимая в файлах, может быть различной не только по содержанию, но и по структуре. Содержимое одних файлов представляет собой последовательность символов, которая покажется вам полной бессмыслицей, наподдающейся чтению. Это касается различных служебных файлов, архивных файлов, файлов приложений и др. Другие файлы, наоборот, обладают четкой структурой, их элементы имеют одинаковый тип и формат. И наконец, можно выделить файлы, содержащие текстовую информацию, которая удобна для чтения и легко поддается обработке.
Обработка файловых данных средствами Delphi не универсальна. Все зависит от типа файла и от способа хранения информации в нем.
Типы файлов
Самой главной ценностью файлов являются их данные, которые представляют собой последовательность элементов определенного типа. В зависимости от способа организации данных, а также способа обращения к элементам файла в Delphi различают следующие типы файлов:
· типизированные;
· текстовые;
· нетипизированные.
Типизированные файлы позволяют работать с элементами данных одного типа, при этом их длина является строго фиксированной. Такая организация данных позволяет напрямую обращаться к каждому элементу по его порядковому номеру. Для работы с данными типизированных файлов объявляется файловый тип, который имеет следующий синтаксис.
<Имя файлового типа> = file of <Тип>;
Для файлов данной категории действует ограничение — тип элементов данных должен быть фиксированным. Это значит, что не допускается создание файлов, элементами которых являются динамические массивы, строки неограниченной длины, классы, объекты, указатели, вариантные типы, другие файлы, а также любые структурные типы, которые содержат поля одного из перечисленных типов.
Следующие примеры объявления файловых типов и файловых переменных не приведут к ошибке компилятора.
type TCompanylnfo = record Name:string[20] ;
Address:string[20] ;
Staff:byte; end;
type TFileOfByte = file of byte; type TFileOfChar = file of char; type TFileOfString20 = file of string[20]; type TCompanylnfoFile = file of TCompanylnfo;
var
FileOfByte:TFileOfByte;
FileOfChar:TFileOfChar;
FileOfString20:TFileOfString20;
CompanylnfoFile:TCompanylnfo;
Также возможен вариант без предварительного объявления файловых типов.
var
FileOfByte:file of byte;
FileOfChar:file of char;
FileOfString20: file of string[20];
CompanylnfoFile: file of TCompanylnfo;
Обращение к файлу можно организовать таким образом, что его данные интерпретируются как последовательность символов, образующих строки различной длины, которые разделены между собой символом возврата каретки и символом переноса строки. Как правило, такие файлы предназначены для хранения текстовой информации, поэтому они называются текстовыми. Для работы с текстовыми файлами объявляется специальная файловая переменная типа Textfile. Например, так.
Article: TextFile;
В Delphi объявлены две глобальные переменные Input и Output, предназначенные для работы со стандартными текстовыми файлами. Переменная Input используется для чтения строковых значений, введенных с клавиатуры, а переменная Output используется для вывода информации на экран монитора. Обмен текстовой информацией с помощью данных переменных доступен только в консольных приложениях. При этом на практике в процедурах ввода и вывода информации (Read/Readln и Write/Writeln) необязательно указывать имя соответствующей переменной. Таким образом, следующие пары операторов являются эквивалентными.
Readln(str);
Readln(Input, str);
Writeln(str);
Writeln(Output, str);
1.1.Объявление файла
Как и любая структура данных (переменная, массив) программы, файл должен быть объявлен в разделе описания переменных. При объявлении файла указывается тип элементов файла.
В общем виде объявление файла выглядит так:
Имя:file of ТипЭлементов;
Примеры:
res: file of char; // файл символов
koef: file of real; // файл вещественных чисел
f: file of integer; // файл целых чисел
Файл, компонентами которого являются данные символьного типа, называется символьным или текстовым. Описание текстового файла в общем виде выглядит так:
Имя: TextFile;
1.2.Назначение файла
Объявление файловой переменной задает только тип компонентов файла. Для того чтобы программа могла выводить данные в файл или считывать данные из файла, необходимо указать конкретный файл, т. е. связать файловую переменную с конкретным файлом (задать имя файла).
Имя файла задается вызовом процедуры AssignFile, связывающей файловую переменную с конкретным файлом.
Описание процедуры AssignFile выглядит следующим образом:
AssignFile(var f, ИмяФайла: string);
Имя файла задается согласно принятым в Windows правилам. Оно может быть полным, т. е. состоять не только непосредственно из имени файла, но и включать путь к файлу (имя диска, каталогов и подкаталогов).
Ниже приведены примеры вызова процедуры AssignFile:
AssignFile(f, 'а:\result. txt');
AssignFile(f, '\students\ivanov\korni. txt'); fname:=('otchet. txt');
AssignFile(f, fname);
1.3.Вывод в файл
Непосредственно вывод в текстовый файл осуществляется при помощи инструкции write или writeln. В общем виде эти инструкции записываются следующим образом:
Write(Файловая Переменная, Список Вывода);
writeln (Файловая Переменная, Список Вывода);
где:
· Файловая Переменная — переменная, идентифицирующая файл, в который выполняется вывод;
· Список Вывода — разделенные запятыми имена переменных, значения которых надо вывести в файл. Помимо имен переменных в список вывода можно включать строковые константы.
Например, если переменная f является переменной типа TextFile, то инструкция вывода значений переменных x1 и х2 в файл может быть такой:
write(f, 'Корни уравнения', x1, х2);
Различие между инструкциями write и writeln состоит в том, что инструкция writeln после вывода всех значений, указанных в списке вывода, записывает в файл символ "новая строка".
1.4.Открытие файла для вывода
Перед выводом в файл его необходимо открыть. Если программа, формирующая выходной файл, уже использовалась, то возможно, что файл с результатами работы программы уже есть на диске. Поэтому программист должен решить, как поступить со старым файлом: заменить старые данные новыми или новые данные добавить к старым. Способ использования старого варианта определяется во время открытия файла.
Возможны следующие режимы открытия файла для записи в него данных:
· перезапись (запись нового файла поверх существующего или создание нового файла);
· добавление в существующий файл.
Для того чтобы открыть файл в режиме создания нового файла или замены существующего, необходимо вызвать процедуру Rewrite(f), где f — файловая переменная типа TextFile.
Для того чтобы открыть файл в режиме добавления к уже существующим данным, находящимся в этом файле, нужно вызвать процедуру Append(f), где f — файловая переменная типа TextFile.
На рис. 1 приведено диалоговое окно программы, которая выполняет запись или добавление в текстовый файл.
![]() |
Рис. 1. Диалоговое окно программы записи-добавления в файл
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 |



