Меню
Бесплатно
Главная  /  Советы  /  Что такое файлы данных. Файлы данных план-конспект по информатике и икт на тему

Что такое файлы данных. Файлы данных план-конспект по информатике и икт на тему

Урок №7

Разработка урока на тему «Файлы данных».

Тема урока: Файлы данных.

Цель урока: Сформировать у учащихся понятие о файле данных. Процедуры работы с файлами.

Задачи урока:

  1. Файлы данных.
  2. Процедуры работы с файлами.

Оборудование урока: компьютер, проектор.

План урока

1. Организационный момент (приветствие).

- Здравствуйте, садитесь. Кто сегодня отсутствует?

2. Изучение нового материала .

Файлы данных.

Файл данных - это пространство на магнитном носителе, зарезервированное для хранения информации и имеющее определенное имя. Файл - это также последовательность чисел (кодов), некоторые из которых понимаются как управляющие коды (например, существует код признака конца файла, для текстовых файлов существует признак конца строки). Что представляет из себя эта последовательность чисел можно решить только в программе. В самом файле нет никаких признаков, позволяющих определить характер информации.

Работать с файлом на физическом уровне крайне сложно. Поэтому для файла, как и для обычной переменной, Паскаль определяет тип. Например, можно записать:

a: file of integer; (Файл целых чисел.)

f: file of string; (Файл строк.)

Алгоритм работы с файлом:

  1. Файл специальной процедурой связывается с файловой переменной.
  1. Открывается либо создается файловая переменная (физически будет открыт файл, но программист в этом процессе не участвует).
  2. Выполняются необходимые операции чтения и записи данных.
  3. Файловая переменная закрывается.

Задача 1 . Напишем программу, в которой будут выполняться следующие действия:

  1. Открывается файл.
  2. Записывается 100 последовательных целых чисел.
  3. Файл закрывается.
  4. Файл открывается.
  5. Считываются числа, содержащиеся в файле, и распечатываются на экран.

Program example;

I,u: integer;

{ Определяется переменная, которую затем можно привязать к файлу,

F: file of integer;

begin

{ Файловая переменная привязывается к файлу,

Имя которого указано в апострофах }

Assign(f,’file’);

{ Так как такой файл еще не существует, то он создается и открывается}

Rewrite(f);

{ Числа записываются в файл }

For i:=1 to 100 do write(f,i);

{ Файл закрывается}

Close(f);

{ Так как файл уже существует, то он просто открывается }

Reset(f);

{ Числа читаются из файла и выводятся на экран дисплея}

For i:=1 to 100 do

Begin

Read(f,u);

Write(‘ ‘,u);

End;

end.

Файловая переменная не может быть совершенно обычной переменной. Поэтому для файловых переменных предусмотрены специальные процедуры и функции. Краткий список процедур и функций, работающих с файлами в Borland Pascal, приведен далее.

  1. assign - процедура, связывающая файл с файловой переменной.
  2. reset - открывает существующий файл и устанавливает указатель позиции файла на нулевой элемент.
  3. rewrite - создает файл.
  4. truncate - обрезает файл, начиная с текущей позиции.
  5. seek - устанавливает указатель файла в указанную позицию.
  6. eof - функция, возвращающая истину, если был достигнут конец файла, и ложь в противном случае.
  7. filesize - вычисляет размер файла в количестве записей того типа, который указан в объявлении файла.

Примечание

Для файла существует такое понятие как указатель на текущую позицию. Это величина целого типа (для Borland Pascal - это величина типа longint ), в которой хранится номер текущей позиции файла. При каждой операции чтения/записи указатель смещается на следующую запись. Под записью понимается длина типа, указанного в объявлении файла. Нумерация записей в файле начинается с нуля.

Структуры данных в приведенном примере определены вполне корректно, но в операторе write(f,a); компилятор выдаст сообщение об ошибке. А именно: компилятор сообщит, что имеет место несоответствие типов. Кажется, что типы переменных a и f одинаковы. Однако это не так с точки зрения компилятора. Мы описали две разные структуры, и компилятор справедливо полагает, что они могут быть различны и не берет на себя заботу по проверке их одинаковости.

Указанная проблема решается следующим образом:

Program example;

Uses crt;

Type

R=record

S:string;

I:integer;

End;

A:r;

F: file of r;

begin

A.s:="fsfsfsf";

A.i:=8;

Write(f,a);

end.

Эта программа реализует ту же задачу, что и предыдущая, однако здесь для компилятора не возникает никаких проблем.

Файл может быть компонентом сложной структуры. Например, вполне допустим массив файлов:

f:array file of integer;

Файл вполне может оказаться компонентом записи:

Program example;

A:record

S:string;

F: file of integer;

End;

begin

Assign(a.f,"file.dat");rewrite(a.f);

end.

В этом примере открывается файл массивов. То есть каждая запись файла - это массив длиной в 10 целых чисел. Причем мы можем не определять значения всех десяти элементов, в файле все равно будет записано их десять, как дано в определении массива.

Один и тот же физический файл можно открыть как файл одного типа, а затем его же как файл другого типа:

Program example; Uses crt;

S:string;

I:integer;

F:file of string;

D:file of integer;

begin

Clrscr;

Assign(f,"file.dat");rewrite(f);

S:="gdgdgjagdjasg";

For i:=1 to 10 do write(f,s);

Close(f);

Assign(d,"file.dat");reset(d);

While not eof(d) do

Begin

Read(d,i);write(i," ");

End;

end.

В этом примере файл с именем file.dat открывается как строковый и заполняется некоторым содержимым, затем закрывается и опять открывается, но уже как файл чисел. Такие операции для языка Паскаль вполне законны, это следствие того, что на физическом уровне тип файла никак не фиксируется.

Заключение: Файл - это структура позволяющая хранить большие наборы информации. То, что файловые типы представляют собой обычные языковые типы данных, добавляет им удобства в обработке. Единственный недостаток хранения данных в файлах - это относительно низкая скорость доступа.

3.Домашнее задание.

Повторить изученный материал. Выучить основные понятия: файл данных; файл; алгоритм работы с файлами; процедуры и функции, работающие с файлами; запись.

4. Подведение итогов

Выставление оценок ученикам, которые хорошо работали на уроке.


Файлы данных

В процессе разработки программ часто возникает необходимость в хранении и обработке сохраненной информации. Эта информация может быть самой разнообразной: исходные данные для решения задач, результаты вычислений, списки и так далее. Для хранения такой информации могут использоваться файлы баз данных. Файлы данных текстовые. В зависимости от организации данных на дисках или других машинных носителях текстовые файлы делятся на файлы с последовательным доступом, файлы с прямым доступом и двоичные файлы .

Текстовые файлы с последовательным доступом (файлы последовательного доступа) не имеют какой-либо структуры. Структура этих файлов определяется самой считывающей программой. В текстовых файлах с последовательным доступом каждая строка заканчивается двумя специальными символами: конец строки и возврат каретки, которые вводятся в текст программы при нажатии клавиши Enter (Ввод) на клавиатуре. Поэтому один из самых легких способов обработки текстового файла с последовательным доступом состоит в чтении его строка за строкой. Создание текстовых файлов с последовательным доступом также не представляет большого труда. Его можно создать любым текстовым редактором. Данные в файл последовательного доступа записываются последовательно байт за байтом. Чтобы проанализировать и выбрать нужную информацию, файл должен быть полностью прочитан. Это повышает требования к объему оперативной памяти и снижает скорость выполнения программы.

Текстовые файлы с прямым доступом (файлы прямого доступа) предназначены для чтения и записи текста или структурированных двоичных файлов с записями фиксированной длины. Они позволяют записывать и извлекать данные из файла по номеру записи. Это сокращает время на поиск и извлечение данных. Однако при этом имеет место неэффективное использование дискового пространства, так как длина каждого поля в записи должна быть заранее оговорена.

Двоичные файлы (бинарные) используются для чтения и записи произвольно структурированных данных. Бинарные файлы это, строго говоря, не новый тип файлов, а один из способов управления файлами любого типа. Методы работы с бинарными файлами позволяют считывать и изменять любой байт файла.

Для работы с файлами данных используются команды открытия файла, закрытия файла, записи и чтения данных из файла, а также ряд функций, облегчающих работу с файлами. Все эти команды традиционны для всех версий языка Basic.

Открытие файлов

Для открытия файлов служит команда Open .

Open “спецификация_файла” For { тип файла}

As [#] N



Опция “Спецификация_файла ”, как известно, позволяет указать диск, маршрут, имя и расширение имени файла. Например: R:/Prognoz/Ucheb/prognoz1.dan. Чтобы файл мог использоваться на компьютерах и с операционной системой MS DOS, имя файла и его расширение должны формироваться по правилам операционной системы MS DOS. Tо есть в имени файла и расширении имени файла могут использоваться только латинские символы и цифры, имя файла должно начинаться с буквы, длина имени файла не должна превышать 8 символов, а расширение имени файла – четырех символов, включая точку. В имени файла не допускается использование точек и пробелов. Спецификация файла заключается в кавычки.

Опция For определяет тип файла. Тип файла указывает на его структуру и способ использования и может принимать следующие значения:

Input – файл последовательного доступа, открыт для чтения;

Output – файл последовательного доступа, открыт для записи;

Append - файл последовательного доступа, открыт для добавления данных;

Bynary – двоичный файл открыт для записи и чтения данных:

Random – файл прямого доступа открыт для записи и чтения данных.

Опция Access определяет права доступа к данным при работе в сетях ЭВМ. Она может иметь три значения:

Read – разрешено чтение данных из файла;

Write – разрешена запись данных в файл;

Read Write - разрешено чтение и запись данных. Этот режим доступа используется по умолчанию.

Опция Lock . Так как режим чтения-записи, обычно, предназначен для работы с файлами, которые могут использоваться многими пользователями или приложениями, необходимо обеспечить целостность данных при коллективном использовании. Для этой цели используется параметр блокировка, который может принимать следующие значения:

Shared – файл может использоваться всеми процессами для считывания и записи данных;

LockRead – запрет чтения. Никакой другой процесс не может считывать данные из файла. Этот параметр можно установить, если в данный момент никакой другой процесс не выполняет операцию чтения.

LockWrite – запрет записи. Никакой другой процесс не может записывать данные в файл. Данный параметр можно установить, если в текущий момент никакой другой процесс не выполняет операцию записи.

LockReadWrite – запрет записи, чтения данных. Этот параметр можно установить, если в данный момент никакой другой процесс не выполняет операцию записи, чтения.

Опция As – определяет номер канала. Знак # можно опустить. Номер канала может принимать значения от 1 до 255. Число одновременно открытых каналов определяется ограничениями операционной системы, указанными в файле Config.sys.

Опция Len – используется только в файлах прямого доступа. Она устанавливает длину записи в байтах.

При открытии или, иными словами, инициализации файлов выполняются следующие операции:

устанавливается связь между спецификацией файла и его программным номером. Поэтому во всех последующих операциях с данным файлом дается ссылка на номер канала, а не на спецификацию файла;

закрепляется системный или программный буфер, используемый для реализации операторов ввода-вывода. Использование буфера уменьшает число обращений программы к диску, а следовательно, повышается скорость записи-чтения данных;

формируются начальные значения параметров, расположенных в так называемом блоке управления файлом.

Закрытие файлов

Для закрытия файлов используется команда Close . Синтаксис команды:

Close [# <номер канала> ]

Команда Close с параметром номера канала закрывает указанный канал. Команда Close без параметров закрывает все открытые файлы. Команда Close очищает буфер и дает указание операционной системе обновить таблицу размещения файлов .

Команды записи данных в файл и чтения информации из файлов данных зависят от типа файла.

Данные в компьютере хранятся в файлах. Файл является основной структурной единицей организации и хранения данных в компьютере. Существует достаточно много определений понятия файла, сущность которых сводится к следующему: файл есть определенное количество информации (файл может содержать компьютерную программу, текстовый документ, числовые данные, закодированный рисунок и т. д.), имеющее имя и хранящееся на внешнем ЗУ. Имя файла состоит из двух частей, разделенных точкой: первая часть это непосредственно имя файла, вторая – его расширение, определяющее его тип, т. е. то, что хранится в конкретном файле (компьютерная программа, графические данные и т. д.). Имя файлу присваивает пользователь (если пользователь по каким-то причинам не назначает имя файла, то компьютерная программа после завершения работы сама назначит имя по умолчанию), а тип файла может задаваться принудительно пользователем или приложением (компьютерной программой) автоматически при его создании. В табл. 6.2 приведены некоторые типы файлов и соответствующие им расширения, звездочкой обозначены возможные имена файлов.

Таблица 6.2

Кроме имени файла существует такое понятие, как «формат файла», который определяет способ хранения информации (структуру данных) в файле и отображения файла на экране или при печати. Формат файла определяет правила написания имен файлов и зависит от файловой системы, поддерживаемой операционной системой (ОС), установленной на компьютере. Например, в ОС MS DOS имя файла должно содержать не более восьми букв латинского алфавита, а расширение состоит из трех латинских букв – primer.txt, prim.txt, priml.txt и т. д. В ОС семейства Windows имя файла может иметь до 255 символов, при этом можно использовать и русский алфавит – album, jpg, пример. сюс и т. д. Эти правила в ОС MS DOS и ОС семейства Windows запрещают при назначении имен файлов использовать следующие знаки и символы: / \: *? < >|.

На любом из вышеперечисленных внешних ЗУ может храниться большое количество файлов. Порядок ихранения определяется файловой системой, которая может иметь определенную файловую структуру. Каждому имени файла соответствует свой уникальный адрес, что позволяет МП при необходимости находить на внешнем ЗУ нужный файл, а затем считывать из него данные в ОЗУ. Файлы в операционных системах по функциональному или тематическому признаку могут объединяться в каталоги или папки, которые в свою очередь могут входить в другие каталоги или папки, т. е. иметь сложную файловую структуру.

В программе понятия файлов используется для решения двух задач:

  • для сохранения результатов работы программы и их дальнейшего использования другими программными средствами;
  • использование внешнего файла данных, как источника для входных данных в программе.

В языке Паскаль внешние файлы рассматриваются с точки зрения требования к ним с MS-DOS. Файлом в MS-DOS называется поименованная область на диске, где хранится информация, при этом требование к имени файла должны строго соответствовать требованиям MS-DOC (собственное имя не более 8 символов, расширение - 3 символа, буквы латинского алфавита, первый символ обязательно буква).

В Pascal любой внешний файл имеет 3 особенности:

  • внешний файл имеет имя и это дает возможность программе одновременно работать с несколькими данными;
  • файлы данных должны содержать компоненты одного типа;
  • длина внешнего файла не оговаривается и может иметь произвольную длину.

Внешние файлы имеют связь с файловой переменной, которая заменяет имя файла в программе. В Pascal переменная файлового типа или файловый тип задается одним из 3-х способов в разделе Type:

  • [имя]: File of [тип];
  • [имя]: Text;
  • [имя]: File;

[имя] - имя файловой переменой.

По способу объявления различают следующие виды файлов:

  • типизированные файлы (File of);
  • текстовые файлы (Text);
  • не типизированные файлы.

Понятие файл можно рассматривать с двух сторон: первая сторона говорит, что файл - это поименованная область на внешней памяти, содержащая информацию (данные). Файл в таком понятии называется физическим файлом, данный файл существует на диске физически; вторая сторона говорит, что файл - это одна из многих структура данных, которые используются в программировании. В таком понимании файл называется логическим файлом, такой файл существует в логическом представлении, при составлении программы. В программе файл в логическом понимании представляется как файловая переменная определенного типа.

Структуру физического файла можно представить в виде обычной последовательности байт памяти на носитель информации.

Структура логического файла - это способ распознавания файла программой. Образно говоря, логический файл это окно (шаблон), с помощью которого мы смотрим на физическую структуру файла. В языках программирования таким окном является тип данных, используемый в качестве компонента File.

В логической структуре каждая компонента внешнего файла занимает место, которая определяется типом компонента. В принципе, логическая структура файла данных схожа со структурой массива. Разница между файлом и массивом заключается в следующем: у массива, в момент распределения памяти, фиксируется количество элементов, и он полностью находится в ОП. Нумерация элементов массива выполняется с границами, указанными при объявлении. У файла в процессе работы в программе число элементов может изменяться, а, кроме того, он находится на внешнем носителе. Нумерация элементов файла, кроме текстовых файлов начинается слева на право, начиная с 0. Количество компонентов в любой момент времени неизвестно. Зато в конце файла находится символ конца файла EOF (End of File), в качестве которого применяется управляющий символ из ASCII кодом #26 (Ctrl+z). Также в программе можно определить длину файла и выполнить другие операции с помощью стандартных процедур и функций.

Особый вид файлов в Pascal является текстовые файлы. В принципе текстовый файл можно рассматривать как разновидность типизированных файлов. В текстовых файлах помимо признака конца файла, еще используется признак конца строки EoLn (End of Line). Признак EoLn соответствует коду #13, который генерируется клавишей Enter. Структуру текстового файла можно представить в следующем виде:

Стандартные файлы ввода (Input) и вывода (Output), использующие ввод с клавиатуры и вывод на дисплей, являются текстовыми. Не смотря на то, что текстовый файл является разновидностью Char, имеются отличия текстового файла от файла символа:

  • в текстовых файлах, при записи, числовые данные автоматически преобразовываются в цепочку символов, а при выполнении чтения происходит обратное преобразование;
  • текстовые файлы не имеют прямого доступа, что означает, что данные можно считать (записать) только целиком;
  • читать и записывать текстовый файл могут только некоторые данные стандартных типов;
  • текстовый файл имеет признаки конца строки;
  • для чтения и записи текстового файла разрешено использовать ReadLn и WriteLn, которые запрещено в других видах данных.

Процедуры и функции для работы с внешними файлами

Для использования файла в программе необходимо объявить файловую переменную, соответствующую виду файла, которое будет заменять имя файла в программе. Для того чтобы программа могла обращаться к внешнему файлу ее необходимо связать с внешним файлом.

Формат: Assign([файловая_переменая],[имя_файла_или_логическое_имя_устройства]);

Имя файла должно содержать полный путь к этому файлу, начиная от текущего каталога. В качестве логического устройства используются два устройства: ‘con’ - экран монитора; ‘prn’ - принтер.

Rewrite - создание нового файла.

Формат: Rewrite([файловая_переменая]);

По этой процедуре на носителе создается пустой, новый файл с именем предварительно связанным с файловой переменой. Новый файл приготавливается к приему информации, при этом специальная переменная будет указывать на начало файла. Если файл с этим именем существовал, то он стирается.

Reset - установка файла в исходное состояние.

Формат: Reset([файловая_переменая]);

Процедура подготавливает внешний файл, связанный с именем файловой переменой, для чтения. При этом указатель файла перемещается в начало файла. Файл к моменту использования Reset должен быть создан.

Read (ReadLn ) - считывание из файла.

Формат: Read([файловая_переменая],[список_ввода]);

Имена переменных в списке ввода должны быть того же типа, что и компоненты в файле, связанные с файловой переменой. Значение каждой переменой устанавливается равным компоненте файла и после чтения каждого значения указатель перемещается на следующую компоненту. Для использования процедур Read и ReadLn файл предварительно должен быть открыт процедурой Reset. ReadLn используется только для текстовых файло и при ее использовании после считывания очередной компоненты указатель перемещается к первому символу новой строки.

Write (WriteLn ) - запись в файл.

Формат: Write([файловая_переменая],[список_вывода]);

Значение переменых из списка вывода записывается как компоненты файла, связанные с именем файловой переменой. Перед записью файл должен быть создан процедурой Rewrite. WriteLn после записи очередной компоненты перемещает указатель в начало новой строки.

При работе с текстовыми файлами необходимо правильно соблюдать использование процедур Read (ReadLn) и Write (WriteLn). При записи данных Write - считывание Read, при записи WriteLn - считывание ReadLn.

Close - закрытие файла.

Формат: Close([файловая_переменая]);

Процедуры закрывает файл, однако связь файловой переменой с файлом, установленная ранее в Assign, сохраняется. Поскольку связь файла и файловой переменой можно открыть для записи или чтения без дополнительного использования Assign.

Append - добавление элементов.

Формат: Append([файловая_переменая]);

Процедура открывает существующий файл для добавления данных в конец файла. Если файл был уже открыт, то использование Append приведет к закрытию и открытию его вновь для добавления записи.

Erase - стирает файл с диска.

Формат: Erase([файловая_переменая]);

Стирает файл, связанный с файловой переменой. Перед использованием процедуры, файл необходимо закрыть Close.

Функция EoF

Формат: EoF([файловая_переменая]);

Логическая функция возвращает истину, если указатель в конце файла и ложь в другом случае.

Функция EoLn

Формат: EoLn([файловая_переменая]);

Логическая функция возвращает истину, если указатель в конце строки и ложь в другом случае.

Вся информация, содержащаяся в переменных и массивах, исчезает по окончании работы программы. Если она может понадобиться в дальнейшем, то эту информацию сохраняют на жёстком диске, дискете или другом носителе, а при следующем запуске программы обратно загружают с внешнего носителя в массивы или переменные. Такая запись на диске или другом носителе называется файлом данных . Кроме файлов данных существуют также исполняемые файлы (программы в машинных кодах с расширением.exe или.com). Некоторые языки и системы программирования (в том числе из диалектов Паскаля – Borland Pascal и Delphi) позволяют из собственной программы запустить такой файл. Pascal ABC такой возможностью не располагает.

Файлы объединены в группы (каталоги или папки). Чтобы определить, с каким файлом предстоит работать, указывают его полное имя . Оно состоит из нескольких частей, например:

Тот каталог, в котором находится наша программа, является рабочим (текущим) каталогом. Это обозначает, что при обращении к файлу данных, находящемуся в таком каталоге, указывать путь не обязательно.

Для использования файла данных в программе нужно в разделе VAR описать файловую переменную (ф/п), в которой будет храниться информация об этом файле (полное имя, длина, дата и время создания и т.д.). Это описание различно для разных типов файлов. Например:


В файлах, описанных как типовые, все данные имеют один и тот же тип (указанный при описании), так же как и в массивах. Поэтому в таких файлах обычно сохраняют содержимое массивов. Хранить в типовом файле текст неудобно, так как все строки должны быть одинаковой длины. Для хранения текста со строками различной длины используется текстовый файл. Для отделения одной строки от другой, в таком файле каждая строка заканчивается символом, соответствующим клавише ENTER. Кроме строк в текстовом файле можно хранить и числа (но это менее экономно, чем в типовом файле, где они хранятся в двоичном коде, а не посимвольно).

Чтобы занести в файловую переменную имя файла , используется команда

assign(ф/п, ’полное имя файла’);

В этой команде можно не указывать путь для файла, находящегося в рабочем каталоге (там же, где и сама программа).

Чтобы в файловую переменную попала вся остальная информация о файле, его нужно открыть с помощью одной из следующих команд:

reset(ф/п); - открывает уже существующий файл и устанавливает указатель на его начало (обычно так открывают файл для чтения, но в типовый файл можно и записывать. Запись происходит вместо имеющихся в файле данных).

append(ф/п); - открывает уже существующий файл и устанавливает указатель на его конец (для добавления информации после конца файла).

rewrite(ф/п); - создаёт новый файл (если файл уже существует, он очищается).

Указатель файла хранит место в файле, откуда мы можем прочесть (или куда записать) информацию. Каждая операция чтения или записи перемещает указатель к следующей записи.

Чтобы прочесть информацию из файла , поместив её в переменную, используются команды:

read(ф/п, список переменных); - читает из типового и текстового файла.

readln(ф/п, список переменных); - читает из текстового файла.

Если из текстового файла читаются не отдельные слова или числа, а вся строка, то используется только одна строковая переменная.

write(ф/п, список переменных); - записывает в типовый и текстовый файл.

writeln(ф/п, список переменных); - записывает в текстовый файл с переводом строки.

Для перемещения по файлу (только типовому!) используется команда seek(ф/п, номер записи); . Нумерация записей в файле ведётся с нуля. Чтобы попасть в конец файла для добавления новой записи, в качестве номера в этой команде используется функция filesize(ф/п), определяющая размер файла (не в байтах, а в записях данного типа).

При чтении из файла неизвестной длины, можно перед чтением проверять, не кончился ли ещё файл, с помощью функции eof(ф/п), которая даёт true, если указатель находится после последней записи. Например:


По окончании работы с файлом его нужно закрыть командой close(ф/п); . Если не сделать этого, Pascal не сохранит изменения файла на диске. Но и если не было изменений, закрыть файл рекомендуется. После этого файловая переменная и файловые буферы (область памяти, которую Pascal использует при работе с памятью) освобождаются.

Команда rename(ф/п,’новое_имя’)переименовывает файл, связанный с файловой переменной. Файл должен быть закрыт.

Команда erase(ф/п)удаляет файл, связанный с файловой переменной. Файл должен быть закрыт.

Не всегда файловые операции проходят успешно. Например, при попытке прочесть с дискеты, которую забыли вставить в дисковод, появляется сообщение об ошибке, и происходит аварийное завершение программы. Подобные ошибки лучше предупредить. Функция FileExists(’имя’) возвращает True, если на диске имеется файл с данным именем (и путём), в противном случае возвращает False. Её нужно использовать перед попыткой обращения к уже существующему файлу. Если нужно создать новый файл, перед этим используется функция CanCreateFile(’имя’). Если имя файла или путь указаны неправильно, или на диске нет места, или по другим причинам невозможно создать файл с таким именем, она возвращает False.