Автор работы: Пользователь скрыл имя, 15 Августа 2013 в 00:51, курсовая работа
Большие совокупности данных, например сведения обо всех учащихся школы или телефонный справочник ,удобно иметь записанными во внешней памяти в виде последовательности сигналов. Любой сколько-нибудь развитый язык программирования должен содержать средства для организации хранения информации на внешних запоминающих устройствах и доступа к этой информации. В Паскале для этих целей предусмотрены специальные объекты- файлы.
Введение………………………………………..……………………………. 2
Описание файлового типа………………………………………..………… 3
Физический и логический файлы……………………………………..…….4
Классификация файлов в Турбо Паскале…………………………………...4
Доступ к файлам………………………………………………………….…. 5
Инициация файла……………………………………………………….……6
Процедуры и функции для работы с файлами………………………..……7
Текстовые файлы……………………………………………………………13
Использование буфера ввода-вывода………………………………….…. 16
Типизированные файлы ………………………………………………..…..17
Нетипизированные файлы…………………………………………...……..19
Литература…………………………………………………………… …….21
Оглавление
Большие совокупности данных, например сведения обо всех учащихся школы или телефонный справочник ,удобно иметь записанными во внешней памяти в виде последовательности сигналов. Любой сколько-нибудь развитый язык программирования должен содержать средства для организации хранения информации на внешних запоминающих устройствах и доступа к этой информации. В Паскале для этих целей предусмотрены специальные объекты- файлы. Файлом называется совокупность данных, записанная во внешней памяти под определенным именем.
Целесообразность применения файлов диктуется следующими причинами.
1 Ввод больших объемов данных подлежащих обработке утомителен и требует большого времени. Гораздо удобнее создать отдельный файл данных, который может быть подготовлен заранее и, самое главное, применяться неоднократно.
2 Файл данных может
быть подготовлен другой
3 Программа, использующая
данные из файла, не требует
присутствия пользователя в
Любой файл имеет три характерные особенности. Во-первых, у него есть имя, что дает возможность программе работать одновременно с несколькими файлами. Во-вторых, он содержит компоненты одного типа. Типом компонентов может быть любой тип Турбо Паскаля, кроме файлов. Иными словами, нельзя создать “файл файлов”. В-третьих, длина вновь создаваемого файла никак не оговаривается при его объявлении и ограничивается только емкостью устройств внешней памяти.
Файловый тип или переменную файлового типа можно задать одним из трех способов:
<имя> = FILE OF <тип>;
<имя> = TEXT;
<имя> = FILE;
Здесь <имя> - имя файлового типа (правильный идентификатор);
FILE, OF – зарезервированные слова (файл, из);
TEXT – имя стандартного типа текстовых файлов;
<тип> - любой тип Турбо Паскаля, кроме файлов.
Например:
type
product = record
name : string;
code : word;
cost : comp
end;
text80 = file of string [80];
var
f1 : file of char;
f2 : text;
f3 : file;
f4 : text80;
f5 : file of product;
В зависимости от способа объявления можно выделить три вида файлов:
В наших примерах F1, F4 и F5-типизированные файлы,F2-текстовый файл,F3-нетипизированный файл. Вид файла, вообще говоря, определяет способ хранения информации в файле. Однако в Турбо Паскале нет средств контроля вида ранее созданных файлов. При объявлении уже существующих файлов программист должен сам следить за соответствием вида объявления характеру файла. Файл можно представить как потенциально бесконечный список значений одного и того же ( базового) типа. Все элементы файла считаются пронумерованными, начальный элемент имеет нулевой номер.
Файл – это именованная область внешней памяти , содержащая какую-либо информацию. Файл в таком понимании называется физическим файлом, то есть существующем физически на материальном носителе информации. С другой стороны, файл – это одна из структур данных, используемых в программировании. Файл в таком понимании называется логическим файлом.
Структура физического
файла – это простая
Структура логического файла – это способ восприятия файла в программе. Образно говоря, это “шаблон” (“окно”), через который мы смотрим на физическую структуру файла. В языках программирования таким “шаблонам” соответствуют типы данных, допустимые в качестве компонент (элементов) файла. Образное представление некоторых “шаблонов” в Турбо Паскале :
Нумерация элементов выполняется слева направо, начиная с нуля (кроме текстовых файлов). В конце файла располагается специальный символ конца файла EOF , в качестве которого используется управляющий символ кодовой таблицы ASCII с кодом 26 (вставляется нажатием клавиш CTRL Z).
Файлы в Турбо Паскале классифицируются по двум признакам:
Допустимость применения методов доступа к каждой разновидности файлов:
Любой программе доступны два предварительно объявленных файла со стандартными файловыми переменными : INPUT- для чтения данных с клавиатуры и OUTPUT- для вывода на экран. Стандартный Паскаль требует обязательного упоминания этих файлов в заголовке программы, например, так:
PROGRAM Name of Program ( input,output);
В Турбо Паскале это необязательно, вот почему заголовок программы можно опускать.
Любые другие файлы, а также логические устройства становятся доступны программе только после выполнения особой процедуры открытия файла ( логического устройства). Эта процедура заключается в связывании ранее объявленной файловой переменной с именем существующего или вновь создаваемого файла, а также в указании направления обмена информацией: чтение из файла или запись в него.
Файловая переменная связывается с именем файла в результате обращения к стандартной процедуре ASSIGN:
ASSIGN ( <ф. п. .>, < имя файла или л. у. >);
Здесь <ф. п.>- файловая переменная ( правильный идентификатор, объявленный в программе как переменная файлового типа );
< имя файла или л. у. >-текстовое выражение, содержащее имя файла или логическое устройство.
Если имя файла задается в виде пустой строки, например, ASSIGN ( f,’’), то в зависимости от направления обмена данными файловая переменная связывается со стандартным файлом INPUT или OUTPUT.
Инициировать файл означает
указать для этого файла
RESET (<ф.п.>);
Здесь <ф.п.> — файловая переменная, связанная ранее процедурой ASSIGN с уже существующим файлом или логическим устройством—приемником информации.
При выполнении этой
Var
f: file of char ;
begin
assign(f,'myfile.dat');
{$I-} {Отключает.контроль ошибок ввода'вывода}
reset(f);
{$I+} {Включаем контроль ошибок ввода-вывода}
if IOResult <> 0 then
...... {Файл не существует}
else
..... {Файл существует}
end.
В этом фрагменте с
помощью директивы компилятора
В Турбо Паскале разрешается обращаться к типизированным файлам, открытым процедурой RESET (т.е. для чтения информации), с помощью процедуры WRITE (т.е. для записи информации). Такая возможность позволяет легко обновлять ранее созданные типизированные файлы и при . необходимости расширять их. Для текстовых файлов, открытых процедурой RESET, нельзя использовать процедуру WRITE или WRITELN.
Стандартная процедура
REWRITE (<ф.п.>
инициирует запись информации в файл или в логическое устроив связанное ранее с файловой переменной <ф.п.>. Процедурой REWRITE нельзя инициировать запись информации в ранее существовавший диcковый файл; при выполнении этой процедуры старый файл уничтожается и никаких сообщений об этом в программу не передается. Новый файл подготавливается к приему информации и его указатель принимает значение 0.
Стандартная процедура
APPEND (<ф.п.>)
инициирует запись в
ранее существовавший текстовый
файл для его расширения, при этом
указатель файла устанавливаетс
Ниже описываются процедуры и функции, которые можно исполь зовать с файлами любого вида. Специфика работы с типизированными, текстовыми и нетипизированными файлами рассматривается в следуюших разделах.
Процедура Close. Закрывает файл, однако связь файловой переменной с именем файла, установленная ранее процедурой ASSIGN, сохраняется. Формат обращения:
CLOSE (<ф.п.>)
При создании нового или расширении старого файла процедура oбеспечивает сохранение в файле всех новых записей и регистрацию файла в каталоге. Функции процедуры CLOSE выполняются автоматически по отношению ко всем открытым файлам при нормальном завершении программы. Поскольку связь файла с файловой переменной сохраняется, файл можно повторно открыть без дополнительного использования процедуры ASSIGN.
Процедура RENAME. Переименовывает файл. Формат обращения:
RENAME (<ф.п.>, <новое имя>)
Здесь <новое имя> — строковое выражение, содержащее 'новое имя файла.
Перед выполнением процедуры необходимо закрыть файл, если он ранее был открыт процедурами RESET, REWRITE или APPEND.
Процедура ERASE. Уничтожает файл. формат обращения:
ERASE (<ф.п.>)
Перед выполнением процедуры необходимо закрыть файл, если он ранее был открыт процедурами RESET, REWRITE или APPEND
Процедура FLUSH. Очищает внутренний буфер файла и, таким образом, гарантирует сохранность всех последних изменений файла на диске. Формат обращения:
FLUSH (<ф.п.>)
Любое обращение к файлу в Турбо Паскале осуществляется через некоторый буфер, что необходимо для согласования внутреннего представления файлового компонента (записи) с принятым в ДОС форматом хранения данных на диске. В ходе выполнения процедуры FLUSH все новые записи будут действительно записаны на диск. Процедура игнорируется, если файл был инициирован для чтения процедурой RESET.
Функция EOF (<ф.п.>) : BOOLEAN. Логическая функция, тестирующая конец файла. Возвращает TRUE, если файловый указатель стоит в конце файла. При записи это означает, что очередной компонент будет добавлен в конец файла, при чтении - что файл исчерпан.
Процедура CHDIR. Изменение текущего каталога. Формат обращения:
CHDIR (<путь>.)
Здесь <путь> — строковое выражение, содержащее путь к устанавливаемому по умолчанию каталогу.
Процедура GETDIR. Позволяет определить имя текущего каталога
(каталога по умолчанию). Формат обращения:
GETDIR (<устройство>, <каталог>)
Здесь <устройство> — выражение типа WORD , содержащее номер устройства: 0 — устройство по умолчанию, 1 — диск А, 2 — диск В и т.д.;
<каталог> — переменная типа STRING, в которой возвращается путь к текущему каталогу на указанном диске.
Процедура MKDIR. Создает новый каталог на указанном диске, формат обращения:
MKDIR (<каталог>)
Здесь <каталог> — выражение типа STRING, задающее путь к каталогу. Последним именем в пути, т.е. именем вновь создаваемого каталога не может быть имя уже существующего каталога.
Процедура RMDIR. Удаляет каталог. Формат обращения:
RMDIR (<каталог>)
Удаляемый каталог должен быть пустым, т.е. не содержать файлов или
имен каталогов нижнего уровня.
Функция IORESULT : . WORD. Возвращает условный признак последней операции ввода-вывода.
Если операция завершилась успешно, функция возвращает ноль. Следует помнить, что IORESULT становится доступной только при отключенном автоконтроле ошибок ввода-вывода. Директива компилятора {$I-} отключает, а директива {$I+} включает автоконтроль. Если автоконтроль отключен, а операция ввода-вывода привела к возникновению ошибки, устанавливается флаг ошибки и все последующие обращения к вводу-выводу блокируются, пока не будет вызвана функция IORESULT.
Информация о работе Типы файлов, создание файлов в среде Турбо-Паскаль 7