Открытие файла
Для открытия файла предназначен оператор open, имеющий следующий формат:
OPEN имя_файла FOR режим AS # номер файла
С именем файла должно быть уже все понятно. Режим определяет доступ к данным файла. Возможны следующие режимы:
- input. Это режим чтения информации из файла. В случае, если указывается несуществующее имя файла, возникнет сообщение об ошибке "Файл не найден".
- output. Режим записи информации в файл. Обычно при этом создается новый файл. Если же открывается для записи уже существующий файл, то ранее хранимая в нем информация будет безвозвратно утеряна.
- append. Режим добавления информации в файл. Новая информация будет размешена в конце файла, за последней записью.
Номер файла предваряется необязательным знаком #, после которого следует целое число от 1 до 255.
Запись в файл
Рассмотрим пример записи в файл.
OPEN "capitals.dat" FOR OUTPUT AS #1 FOR X=l TO 5 INPUT "ВВЕДИТЕ НАЗВАНИЕ СТОЛИЦЫ"; F$ PRINT #1, F$ NEXT X CLOSE #1 END
В результате работы программы мы получим (полужирным шрифтом выделены данные, вводимые пользователем с клавиатуры):
ВВЕДИТЕ НАЗВАНИЕ СТОЛИЦЫ ? МОСКВА ВВЕДИТЕ НАЗВАНИЕ СТОЛИЦЫ ? САНКТ-ПЕТЕРБУРГ ВВЕДИТЕ НАЗВАНИЕ СТОЛИЦЫ ? ТАЛЛИН ВВЕДИТЕ НАЗВАНИЕ СТОЛИЦЫ ? РИГА ВВЕДИТЕ НАЗВАНИЕ СТОЛИЦЫ ? ВИЛЬНЮС
При этом на диске в текущем каталоге образуется файл, содержащий пять строковых значений. Имя файла будет capitals.dat.
Удобнее всего при работе с файлами сделать текущим каталог, где эти файлы содержатся или будут содержаться, а при обращении к ним указывать только их имена.
В качестве параметра имя_файла можно использовать переменную текстового типа. Это позволяет вводить имя файла с клавиатуры и является универсальным способом работы с файлами. Например:
INPUT " Введите имя файла "; FileName$ OPEN FileName$ FOR OUTPUT AS #1
После ключевого слова as указывается номер файла. Больше открыть файл с таким номером в данной программе нельзя. Для каждого последующего файла должен быть указан свой собственный неповторимый номер в пределах от 1 до 255. Сколько всего может быть открыто файлов, зависит от файла конфигурации вашего компьютера config.sys, в котором число одновременно открытых файлов определяется командой files.
Предупреждение
Во избежание неприятностей не открывайте одновременно слишком много файлов. Рекомендуется по окончании работы с файлом сразу закрыть его.
Представленный далее пример демонстрирует программу создания небольшой базы данных автомобилей, предназначенных для продажи. О каждом автомобиле заносится информация о его марке, номере, цвете, годе производства и продажной цене.
' Программа создания файла данных об автомобилях CLS INPUT " Введите имя файла"; F$ ' Открытие файла OPEN F$ FOR OUTPUT AS #1 DO INPUT "Марка автомобиля? (Для окончания работы введите QWE.); М$ IF UCASE$(M$)="QWE" OR UCASE$(M$)="ЙЦУ" THEN 1 INPUT "Номер автомобиля?"; N$ INPUT "Цвет автомобиля?"; С$ INPUT "Год производства автомобиля?"; G$ INPUT "Продажная цена автомобиля?"; S$ WRITE #1, М$, N$, C$, G$, S3 LOOP ' Закрытие файла 1: CLOSE #1 PRINT "Файл сформирован"