Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 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 приведено диалоговое окно программы, которая выполняет запись или добавление в текстовый файл.

C:\DOCUME~1\M@SHK@RA\LOCALS~1\Temp\FineReader11\media\image1.jpeg

Рис. 1. Диалоговое окно программы записи-добавления в файл

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4