3. ФАЙЛЫ. РАБОТА В БЕЙСИКЕ С ФАЙЛАМИ ПОСЛЕДОВАТЕЛЬНОГО

И ПРЯМОГО ДОСТУПА

Если необходимо использовать набор данных или программу мно-

гократно, то необходимо сохранить их на внешнем устройстве памяти

(например, диске или дискете). Для этого создается файл. Файл

должен иметь имя. Имя состоит из двух частей: собственно имя и

расширение

 1имя 0. 1расширение

Имя может содержать до 8 символов, расширение  1-  0до трех.

Могут использоваться следующие символы

A - z 0 - 9 ( ) { } @ # $ 1  0% ^ & ! - _ / ' ~

Полное имя файла в MS DOS содержит весь путь по дереву от

корневой директории к нужному файлу. Например,

C:\ST\LAB\work.bas,

где C - имя диска, ST - имя директории на диске, LAB - имя подди-

ректории директории ST, work.bas - имя программы на Бейсике.

Далее речь пойдет только о файлах данных.

3.1. Файлы последовательного доступа

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

осуществляется последовательно, т.е. n-я запись следует за (n -

1)-ой как при формировании файла, так и при считывании из него.

Создание последовательного файла включает следующие шаги:

открытие файла (оператор OPEN), вывод данных в файл (операторы

PRINT#, WRITE#, или PRINT# USING) и закрытие файла (оператор

CLOSE).

Считывание из последовательного файла включает следующие ша-

ги: открытие файла, ввод данных из файла (операторы INPUT#,

INPUT$, LINE INPUT#), закрытие файла.

 _Оператор OPEN . 2  0подготавливает файл для чтения из файла

(INPUT) или записи в файл (OUTPUT, если создается новый файл,

APPEND, если добавляются записи в уже существующий файл).

INPUT

OPEN  1имя файла  0FOR OUTPUT  1  0 AS # 1номер файла

APPEND

 _Оператор CLOSE  .закрывает файл, т.е. делает невозможным чте-


- 21 -

ние или запись.

CLOSE [# 1номер файла 0]

Оператор CLOSE без параметров закрывает все открытые файлы.

Единицей информации, которая передается при записи в файл

или чтении из файла 1,  0является запись (логическая запись) 2.  0Запись

делится на поля. Каждое поле связано с одним элементом данных.

 0Могут быть созданы два типа последовательных файлов:

1) с разделителями полей, когда каждое поле автоматически

отделяется специальным символом (например, запятой). Для создания

такого файла используется оператор WRITE#, для чтения из него -

оператор INPUT#.

Данные в файле хранятся в таком виде, как если бы они наби-

рались на клавиатуре при выполнении оператора INPUT, т.е. разде-

лены запятыми и каждая запись заканчивается переводом строки.

 _Оператор INPUT# . 2  0имеет вид

INPUT # 1номер файла 0, 2  1список переменных

где переменные в списке по типу должны соответствовать данным в

файле.

2) поля не разделены 1,  0и каждая запись точно такая же, как

если бы эти данные отображались на экране или печатались на прин-

тере. Для создания такого файла используется оператор PRINT#, для

чтения из него - операторы INPUT$ или LINE INPUT#.  _Оператор

 _INPUT$ . передает из файла сразу всю строку (запись) указанной дли-

ны n в символьную переменную, например, ST$

ST$ 2 =  0INPUT$ (n, # 1номер файла 0)

 _Оператор LINE INPUT# . 2  0передает в указанную переменную ST$ всю

строку независимо от ее длины

LINE INPUT # 1номер файла 0, 2  0ST$

Пример (с разделителями полей):

OPEN "SEQU.DAT" FOR OUTPUT AS #1

ST$ = " ИВАНОВ "

INT% = 1972

FLOT! = 75.3

'теперь записываем строку в файл

WRITE #1, ST$, INT%, FLOT!

ST$ = " ПЕТРОВ "

INT% = 1975

FLOT! = 62.5

'записываем другую строку в файл


- 22 -

WRITE #1, INT%, ST$, FLOT!

CLOSE #1

END

Созданный файл будет следующим

" ИВАНОВ ", 1972, 75.3

1975, " ПЕТРОВ ", 62.5

Следующая программа читает из этого файла:

OPEN "SEQU.DAT" FOR INPUT AS #1

ST$ = " "

INT% = 0

FLOT! = 0

'теперь читаем строку текста из файла

INPUT #1, ST$, INT%, FLOT!

PRINT ST$, INT%, FLOT!

ST$ = " "

INT% = 0

FLOT! = 0

'читаем другую строку

INPUT #1, INT%, ST$, FLOT!

PRINT INT%, ST$, FLOT!

CLOSE #1

END

Пример (без разделителей полей):

OPEN "SEQUEN.DAT" FOR OUTPUT AS #1

ST$ = " ИВАНОВ "

INT% = 1972

FlOT! = 73.1

'записываем строку текста в файл

PRINT #1, ST$, INT%, FLOT!

ST$ = " ПЕТРОВ "

INT% = 1975

FLOT! = 64.3

'запишем другую строку, используя оператор

PRINT #1, USING "+####$#.##^^^^"; INT%, ST$, FLOT!

CLOSE #1

END

Содержание созданного файла будет таким:

 ИВАНОВ 1972 73.1


Информация о работе «Описание языка Turbo Basic для студентов всех специальностей»
Раздел: Информатика
Количество знаков с пробелами: 41799
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
40336
0
0

... два символа Вообще количество выведенных символов будет равно числу пробелов между двумя наклонными линиями + 2. "!" - будет выведен один символ "&"  - будут выведены все символы Например, A$= "КОТ" : GA= 6.5 B$= "СОБАКА" : GB= 15.3 PRINT USING "& ВЕСИТ #.#, ВЕСИТ ##.# КГ";A$,GA,B$,GB При выполнении этого оператора на экране появится КОТ ВЕСИТ 6.5, СОБАКА ВЕСИТ 15.3 ...

Скачать
69528
1
0

... третьих фирм имеют логотип "Featuring Microsoft Visual Basic Technology". Это заставляет задуматься над тем, что же такое BASIC - "стандартный код для начинающих" или "основной язык для ос­новной среды"... ГЛАВА3. разработка программы для расчета показателей финансового состояния предприятия. Для осуществления планирования деятельности любой фирмы на любом этапе работы осуществляются некоторые ...

Скачать
35274
1
0

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

Скачать
133101
1
9

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

0 комментариев


Наверх