Типы файлов, создание файлов в среде Турбо-Паскаль 7

Автор работы: Пользователь скрыл имя, 15 Августа 2013 в 00:51, курсовая работа

Краткое описание

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

Содержание

Введение………………………………………..……………………………. 2
Описание файлового типа………………………………………..………… 3
Физический и логический файлы……………………………………..…….4
Классификация файлов в Турбо Паскале…………………………………...4
Доступ к файлам………………………………………………………….…. 5
Инициация файла……………………………………………………….……6
Процедуры и функции для работы с файлами………………………..……7
Текстовые файлы……………………………………………………………13
Использование буфера ввода-вывода………………………………….…. 16
Типизированные файлы ………………………………………………..…..17
Нетипизированные файлы…………………………………………...……..19
Литература…………………………………………………………… …….21

Вложенные файлы: 1 файл

Контрольная работа по информатике. Файлы.doc

— 154.00 Кб (Скачать файл)


Оглавление

Введение………………………………………..……………………………. 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;

 

В зависимости от способа объявления можно выделить три вида файлов:

  • типизированные файлы ( задаются предложением  FILE OF…);
  • текстовые  файлы ( определяются  типом  TEXT);
  • нетипизированные  файлы ( определяются  типом  FILE).

В наших примерах F1, F4  и F5-типизированные  файлы,F2-текстовый файл,F3-нетипизированный  файл. Вид файла, вообще говоря, определяет способ хранения информации в файле. Однако в Турбо Паскале нет средств контроля вида ранее созданных файлов. При объявлении  уже существующих файлов программист должен сам следить за соответствием вида объявления характеру файла. Файл можно представить как потенциально бесконечный список значений одного и того же ( базового) типа. Все элементы файла считаются пронумерованными, начальный элемент  имеет  нулевой  номер.

Физический и логический файлы

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

Структура физического  файла – это простая последовательность байт:

 


 

 

Структура логического  файла – это способ восприятия файла в программе. Образно говоря, это “шаблон” (“окно”), через который мы смотрим на физическую структуру файла. В языках программирования таким “шаблонам” соответствуют типы данных, допустимые в качестве компонент (элементов) файла. Образное представление некоторых “шаблонов” в Турбо Паскале :

FILE OF BYTE

 


 

FILE OF CHAR


 

 

FILE OF INTEGER


 

 

 

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

Классификация файлов в Турбо Паскале

 

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

  • по типу (логической структуре)
  • по методу доступа к элементам файла







 

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



 






Доступ  к файлам

 

Любой программе доступны два предварительно объявленных  файла со стандартными  файловыми  переменными : INPUT- для чтения данных с клавиатуры и OUTPUT- для вывода на экран. Стандартный Паскаль требует обязательного  упоминания  этих  файлов  в  заголовке  программы, например, так:

PROGRAM    Name of Program ( input,output);

В Турбо  Паскале это  необязательно, вот почему заголовок программы можно опускать.

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

Файловая переменная связывается с именем  файла  в результате обращения к стандартной процедуре ASSIGN:

ASSIGN    ( <ф. п. .>,     < имя файла или   л. у. >);

Здесь <ф. п.>- файловая  переменная  ( правильный  идентификатор, объявленный  в программе  как  переменная  файлового  типа );

< имя  файла  или  л.  у. >-текстовое  выражение, содержащее  имя  файла  или  логическое  устройство.

Если  имя файла задается в  виде пустой строки, например, ASSIGN ( f,’’), то в зависимости от направления обмена данными файловая переменная  связывается со стандартным  файлом  INPUT или OUTPUT.

Инициация файла.

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

RESET (<ф.п.>);

Здесь <ф.п.> — файловая переменная, связанная ранее процедурой  ASSIGN с уже существующим файлом или логическим  устройством—приемником информации.

 При выполнении этой процедуры  дисковый файл или логическое устройство подготавливается к чтению информации. В результате специальная переменная—указатель, связанная с этим файлом, будет указывать на начало файла, т.е. на компонент с порядковым номером 0 Если делается попытка инициировать чтение из несуществующего файла или из логического устройства PRN, возникает ошибка периода исполнения, которая может быть сообщена программе ненулевым значением встроенной функции IORESULT типа WORD. Например, следующий  фрагмент программы позволяет установить, существует ли требуемый файл на диске:

Var

f: file of char ;

begin

      assign(f,'myfile.dat');

      {$I-}    {Отключает.контроль ошибок ввода'вывода}

     reset(f);

{$I+}     {Включаем контроль ошибок ввода-вывода}

if  IOResult <> 0 then

...... {Файл не существует}

else

..... {Файл существует}

end.

В этом фрагменте с  помощью директивы компилятора {$I-} отключается автоматический контроль ошибок ввода-вывода. Если этого не сделать, то отсутствие файла приведет к аварийному завершению программы.

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

Стандартная процедура

REWRITE (<ф.п.>

инициирует запись информации в файл или в логическое устроив  связанное ранее с файловой переменной <ф.п.>. Процедурой REWRITE нельзя инициировать запись информации в ранее существовавший диcковый файл; при выполнении этой процедуры старый файл уничтожается и никаких сообщений об этом в программу не передается. Новый файл подготавливается к приему информации и его указатель принимает значение 0.

Стандартная процедура

APPEND (<ф.п.>)

инициирует запись в  ранее существовавший текстовый  файл для его расширения, при этом указатель файла устанавливается в его конец. Процедура APPEND применима только к текстовым файлам, т.е. их файловая переменная должна иметь тип TEXT (см. выше).  Процедурой APPEND нельзя инициировать запись в типизированный или нетипизированный файл. Если текстовый файл ранее уже был открыт с помощью RESET или REWRITE, использование процедуры 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