Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Операции для работы с файлами последовательного доступа
Множества значений или переменных с одним общим именем называются структурированными (составными) типами. Имеется несколько способов построения составных типов, каждый из которых отличается способом обращения к отдельным компонентам и, следовательно, способом обозначения компонентов, входящих в данные структурированных типов. По способу организации и типу компонентов выделяют четыре основные разновидности структурированных типов: · регулярный тип (массивы); · комбинированный тип (записи); · файловый тип (файлы); · множественный тип (множества). Использование структурированных типов данных позволяет решать разнообразные и достаточно сложные задачи. В задачах, которые мы рассматривали, данные поступали с клавиатуры, а результаты выводились на экран дисплея. Поэтому ни исходные данные, ни результаты не сохранялись. Всякий раз при выполнении одной и той же программы, особенно во время ее отладки, приходилось заново вводить исходные данные. А если их очень много? Тогда удобно оформить исходные данные и результаты в виде файлов, которые можно хранить на диске точно так же, как и программы. Файл − это область памяти на внешнем носителе, в которой хранится некоторая информация. В него можно поместить данные или извлечь их оттуда. Файл в таком понимании называют физическим файлом, т.е. существующим физически на некотором материальном носителе информации. С другой стороны, файл − это одна из многих структур в программировании. Файл в таком понимании называют логическим файлом, т.е. существующим только в нашем логическом представлении при написании программы. Структура физического файла представляет собой простую последовательность байт носителя информации. Структура логического файла − это способ восприятия файла в программе. Образно говоря, это "шаблон" ("окно"), через который мы смотрим на физическую структуру файла. В Паскале таким "шаблонам" соответствуют типы данных, допустимые в качестве компонент файлов. В языке Паскаль файл представляет собой последовательность элементов одного типа. Мы будем работать только с т.н. файлами последовательного доступа. В таких файлах, чтобы получить доступ к элементу, необходимо последовательно просмотреть все предыдущие. Файл последовательного доступа можно сравнить с магнитной лентой, на которой записаны песни. Для того чтобы найти конкретную песню, надо перемотать кассету на начало и прослушивать песню за песней до тех пор, пока не будет найдена нужная. Зачем нужны файлы? Объем информации, которую можно сохранить в файле, очень велик. Он значительно больше, чем объем, который можно хранить в оперативной памяти, например, при использовании массивов. Файлы классифицируются по двум признакам: По методу доступа − последовательный, прямой доступ. По типу (логической структуре) − типизированные, текстовые, нетипизированные. Объявление файловой переменной в разделе описания переменных имеет вид:
Var <имя файла>: File Of <тип элементов;> Например, Var Ft: File Of Integer; {файл, элементами которого являются целые числа} М: File Of Char; {файл, элементами которого являются символы} Type File_Integer=File Of Integer; File_Char=File Of Char; Var F1: File_Integer; F2: File_Char; Так как в описании указывается тип элементов, такие файлы называются типизированными. Все элементы файла пронумерованы, начиная с нуля. С каждым файлом связан так называемый файловый указатель. Это неявно описанная переменная, которая указывает на некоторый элемент файла. (0) (1) … (k) (k+1) …
файловый указатель Все операции производятся с элементом, который определен файловым указателем. Обработка файлов Связь переменной файлового типа с файлом на диске
Для установления связи между файловой переменной и файлом на диске имеется стандартная процедура Assign. Assign(<имя файловой переменной>, '<имя файла на диске>'); Например, Assign (F1,'A:INT.DAT'); После установления такого соответствия все операции, выполняемые над переменной F1, будут выполняться над физическим файлом, хранящимся на диске А и имеющим имя INT.DAT. Файл в каждый момент времени может находиться в одном из двух состояний: либо он открыт только для записи, либо только для чтения.
Чтение из файла Под чтением из файла понимается пересылка данных из внешнего файла, находящегося на диске, в оперативную память. Для чтения из файла необходимо открыть файл для чтения посредством процедуры Reset (<имя файловой переменной>); Собственно чтение данных из файла выполняется процедурой Read (<имя файловой переменной>, <имя переменной>); Переменная должна иметь тот же тип, что и компоненты файла. Отметим, что если оператор ввода имеет вид Read(<имя переменной>), то данные вводятся с клавиатуры, а если Read (<имя файловой переменной>, <имя переменной>), то данные вводятся из файла, хранящегося на диске.
Закрытие файла После того как данные из файла прочитаны, его необходимо закрыть посредством процедуры Close (<имя файловой переменной>). Общая схема чтения данных из файла, таким образом, следующая: Reset (<имя файловой переменной>); … Read (<имя файловой переменной>, <имя переменной>); … Close (<имя файловой переменной>);
Признак конца файла
Так как число элементов файла не известно заранее, необходимо уметь определять, что файл кончился. Для этого используется логическая функция EOF(<имя файловой переменной>) (EOF - End Of file). Она принимает истинное значение (True), если достигнут конец файла, и ложное (False) − в противном случае. Пример Прочитаем из файла целые числа и выведем их на экран: ProgramExample_82; Var F1: File of Integer; n: Integer; Begin Assign(F1, 'A:INT.DAT'); {связываем файловую переменную с файлом на диске} Reset(F1); {открываем файл для чтения} While Not EOF(F1) Do {пока не достигнут конец файла F1} Begin Read(F1, n); {считываем очередное число} Write(n,' '); {выводим его на экран} End; Close(F1); {закрываем файл} Readln; End.
Запись в файл Под записью в файл понимается вывод результатов программы из оперативной памяти ЭВМ в файл на диске. Для записи в файл необходимо открыть файл для записи посредством процедуры Rewrite (<имя файловой переменной>);
Собственно запись данных в файл выполняется процедурой Write (<имя файловой переменной>, <значение>); Если оператор вывода имеет вид Write(<значение>), то данные выводятся на экран дисплея, а если Write(<имя файловой переменной>,<значение>), то данные записываются в файл. После работы с файлом его необходимо закрыть. Общая схема записи данных в файл, таким образом, следующая: Rewrite(<имя файловой переменной>); … Write (<имя файловой переменной>, <значение>); … Close(<имя файловой переменной>);
После выполнения процедур открытия файла для чтения или для записи (Reset или Rewrite) текущий указатель "смотрит" на первый элемент (элемент с номером 0).
|
|||||||||
Последнее изменение этой страницы: 2018-05-31; просмотров: 248. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |