Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laboratornaya_rabota_17.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
42.77 Кб
Скачать

Лабораторная работа 19

Основные приемы работы с файлами

Цель работы - ознакомление с правилами выполнения действий над файлами данных.

Необходимые исходные сведения Обмен данными всегда подразумевает наличие источника информации, канала передачи и ее приемника. В случае обмена данными между программой и внешними устройствами одним концом канала обмена данными всегда является оперативная память ПЭВМ. Другой конец этого канала в системах Turbo Ba­sic и Turbo Pascal определен как файл. Файлом называется сово­купность данных, расположенных на внешнем устройстве под определенным именем. Файл может быть источником информа­ции - тогда осуществляется ввод (чтение) данных из файла или приемником - в этом случае производится вывод (запись) дан­ных в файл. В компьютерной технике функции файлов выпол­няют различные устройства, которые трактуются как логические устройства с файловой структурой организации данных: внеш­ние запоминающие устройства (магнитные ленты и диски, опти­ческие диски), дисплеи, клавиатуры, принтеры, графопострои­тели, коммуникационные порты и т.п. Некоторые из них обес­печивают только односторонний обмен информацией, напри­мер, на принтер можно только выводить информацию, с клавиа­туры - только вводить. На одних физических устройствах мож­но расположить несколько разных файлов, например, на маг­нитной ленте, на диске, другие рассматриваются как однофай­ловые, например, принтер, дисплей, клавиатура. Файлы обеспечивают:

  1. возможность формирования и сохранения значений для последующего использования другими программами;

  2. взаимодействие программ с внешними устройствами ввода-вывода: дисплеем, принтером и т.п.

Ф айл представляется как последовательная потенциально бесконечная цепочка записей (компонентов), пронумерованных от 0 и заканчивающаяся специальным кодом, называемым мар­кером конца файла (м.к.ф.). Схематично это выглядит так:

запись 0 запись 1 …

запись N

м.к.ф.

У казатель файла

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

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

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

Система Turbo Basic. К файлам, расположенным на много­файловых устройствах, обращение осуществляется по именам, задаваемым строковыми константами или строковыми перемен­ными. Эти имена могут содержать маршруты доступа к файлам, оформленные по правилам, задаваемым операционной систе­мой. Для обращения к однофайловым устройствам, используют­ся их логические имена (табл. 6).

Таблица 6

Имя

Устройство

Способ исполь­зования

LPT1:

Устройство, подключенное к парал­лельному порту №1 (обычно печа­тающее устройство)

Только для вывода

СОМ1:

Устройство, подключенное к после­довательному порту №1 (обычно ма­нипулятор “мышь”)

Для вывода и вывода

COM2:

Устройство, подключенное к после­довательному порту №2 (обычно ма­нипулятор “мышь”)

Для вывода и вывода

KYBD:

Клавиатура

Только для вво­да

SCRN:

Дисплей

Только для вы­вода

Для работы с файлами в системе Turbo Basic предназначены следующие основные операторы и функции: OPEN, CLOSE, PRINT, INPUT, EOF.

Оператор OPEN подготавливает файл к операциям ввода или вывода. Для файлов последовательного доступа он имеет сле­дующий синтаксис:

OPEN <файлспец> [FOR <режим>] AS # <файлномер>

Здесь <файлспец> - спецификация файла (строковое выраже­ние, заключаемое в кавычки, или переменная строкового типа), указывающая маршрут доступа к файлу; <режим> может иметь следующие значения: output - открытие файла последователь­ного доступа для вывода в него данных. Если файл с таким име­нем уже существует, его прежнее содержимое уничтожается. В случае отсутствия такого файла, он создается; input - открытие файла последовательного доступа для ввода из него данных. Файл обязательно должен существовать, в противном случае возникнет ошибка периода выполнения программы; APPEND - открытие файла последовательного доступа для добавления к нему записей; Если файл не существует, то создается новый файл. Если файл уже существует, данные добавляются в конец этого файла. <Файлномер> - любое целое число от 1 до некото­рого максимального значения, задаваемого в системе програм­мирования Turbo Basic.

Пример:

OPEN "C:\Tb\DATA.DAT" FOR OUTPUT AS #1

Дисковый файл с именем DATA.DAT открыт для вывода в него данных.

Основная задача оператора OPEN состоит в привязке номера <файлномер> к файлу или внешнему устройству и в подготовке устройства для вывода и/или ввода компонентов. Этот номер, а не имя файла, далее используется в последующих операторах, имеющих ссылку на файл.

После открытия файла можно из него считывать или в него записывать данные с помощью операторов INPUT, PRINT, PRINT USING, WRITE.

Оператор INPUT предназначен для ввода значений из файла. Его синтаксис:

INPUT # <файлномер>, <список переменных>

где <список переменных> — имена переменных, типы которых должны строго соответствовать типу вводимых данных.

Достижение маркера конца файла при чтении удобно кон­тролировать с помощью функции EOF (<файлномер>), прини­мающей значение TRUE, если указатель файла достиг м.к.ф., или FALSE в противном случае.

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

PRINT #<файлномер>, <список выражений»

PRINT #<файлномер> USING<формат>, <список выражений» WRITE #<файлномер>, <список выражений»

Запись, которая формируется в процессе выполнения ука­занных операторов, представляет собой строку символов, со­держащую значения выводимых выражений. Оператор write # формирует выводную запись по тем же правилам, что и опера­тор print #. Но он не формирует лишних символов- разделителей значений.

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

CLOSE [#<файлномер1>, #<файлномер2>, ...]

Примеры:

CLOSE #1 - закрывает файл с номером 1;

CLOSE #1, #2, #3 - закрывает файлы с номерами 1,2,3;

CLOSE - закрывает все ранее открытые файлы.

Пример программы копирования компонентов из файла OLD.DAT в файл NEW.DAT.

OPEN "C:\TB\OLD.DAT" FOR INPUT AS #1'Файл открыт 'для чтения под номером 1

OPEN "C:\TB\NEW.DAT" FOR OUTPUT AS #2'Файл открыт. 'для записи под номером 2

WHILE NOT EOF(1)'Пока не достигнут м.к.ф. номер 1

INPUT #1, Temp$'Чтение текущей записи из файла 1 ' в символьную переменную Temp

PRINT #2, Temp$ 'Запись значения переменной ' Теmр$ в файл 2 WEND

CLOSE #1, #2 'Закрываем оба файла

END

Лабораторная работа 20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]