Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Запись в файл




Открытие файла

Операции над файлами

В соответствии со способом доступа к файлам они делятся на два вида.

1. Файл с последовательным доступом;

2. Файл с прямым доступом.

Файлы последовательного доступа наиболее просты как в орга­низации, так и в работе с ними. Записи обрабатываются после­довательно одна за другой.

Информация в таких файлах хранит­ся в виде текста в кодах ASCII. Такие файлы легко просмотреть на экране, используя любой простейший редактор, или в самом Бейсике.

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

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

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

1. открытие файла;

2. чтение и запись обрабатываемых данных;

3. закрытие файла.

Для открытия файла предназначен оператор open, имеющий следующий формат:

OPEN имя_ файла FOR режим AS # номер файла

Режим определяет доступ к данным файла. Возможны следующие режимы:

· INPUT. Это режим чтения информации из файла. В случае если указывается несуществующее имя файла, возникнет со­общение об ошибке "Файл не найден".

· OUTPUT. Режим записи информации в файл. Обычно при этом создается новый файл. Если же открывается для записи уже существующий файл, то ранее хранимая в нем информация будет утеряна.

· APPEND. Режим добавления информации в файл. Новая инфор­мация будет размещена в конце файла, за последней записью.

Номер файла предваряется знаком #, после ко­торого следует целое
число от 1 до 255.

Рассмотрим пример записи в файл.

OPEN "capitals.dat" FOR OUTPUT AS #1

FOR X=l TO 5

INPUT "ВВЕДИТЕ НАЗВАНИЕ СТОЛИЦЫ"; F$

WRITE #1, F$

NEXT X

CLOSE #1:END

В результате работы программы мы получим (полужирным шрифтом выделены введенные с клавиатуры данные):

ВВЕДИТЕ НАЗВАНИЕ СТОЛИЦЫ? МОСКВА

ВВЕДИТЕ НАЗВАНИЕ СТОЛИЦЫ? САНКТ-ПЕТЕРБУРГ

ВВЕДИТЕ НАЗВАНИЕ СТОЛИЦЫ? ТАЛЛИН

ВВЕДИТЕ НАЗВАНИЕ СТОЛИЦЫ? РИГА

ВВЕДИТЕ НАЗВАНИЕ СТОЛИЦЫ? ВИЛЬНЮС

При этом на диске в текущем каталоге образуется файл, содер­жащий пять строковых значений. Имя файла будет capitals.dat. Удобнее всего при работе с файлами сделать текущим каталог, где эти файлы содержатся или будут содержаться, а при обраще­нии к ним указывать только их имена.

В качестве параметра имя_файла можно использовать перемен­ную текстового типа. Это позволяет вводить имя файла с кла­виатуры и является универсальным способом работы с файлами. На пример:

INPUT «Введите имя файла "; FileName$

OPEN FileName$ FOR OUTPUT AS #1

После ключевого слова as указывается номер файла. Больше открыть файл с таким номером в данной программе нельзя. Для каждого последующего файла должен быть указан свой собст­венный неповторимый номер в пределах от 1 до 255. Сколько всего может быть открыто файлов, зависит от файла конфигура­ции вашего компьютера config.sys, в котором число одновременно открытых файлов определяется командой files.

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

REM Программа создания файла данных об автомобилях

CLS

INPUT «Введите имя файла"; F$

Открытие файла

OPEN F$ FOR OUTPUT AS #1

DO

INPUT "Марка автомобиля? (Для окончания работы введите QWE.); М$

IF UCASE$(M$)="QWE" OR OCASE$(М$)="ЙЦУ" THEN 1

INPUT "Номер автомобиля?"; N$

INPUT "Цвет автомобиля?"; С$

INPUT "Год производства автомобиля?"; G$

INPUT "Продажная цена автомобиля?"; S$

WRITE #1, М$, N$, C$, G$, S$

LOOP

' Закрытие файла

1: CLOSE #1 PRINT "Файл сформирован"

Программа действует следующим образом. Запрашивает имя файла, открывает его для записи, запрашивает информацию, записывает ее в файл до введения пользователем сочетания букв "QWE" или "ЙЦУ" (эти символы расположены на одних клави­шах, вследствие чего пользователь может случайно набрать как одну комбинацию, так и другую).

Запись в файл может произво­диться операторами:

PRINT # номер_файла, выражение

ИЛИ

WRITE # номер_файла, выражение

Результат работы этих операторов одинаков.




Поделиться с друзьями:


Дата добавления: 2015-05-29; Просмотров: 351; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.