Открытие файла
Программа действует следующим образом. Запрашивает имя файла, открывает его для записи, запрашивает информацию, записывает ее в файл до введения пользователем сочетания букв "QWE" или "ЙЦУ" (эти символы расположены на одних клавишах, вследствие чего пользователь может случайно набрать как одну комбинацию, так и другую). Запись в файл может производиться операторами:
PRINT # номер_файла, выражение
…или:
WRITE # номер_файла, выражение
Результат работы этих операторов одинаков.
Для закрытия файлов применяется оператор:
CLOSE # номер_файла
Предупреждение
Если номер файла в операторе close указан, то будет закрыт именно этот, вполне определенный файл. Если же номер не указан, будут закрыты все открытые файлы.
Наберите эту программу с именем создаваемого файла avto.dat.
Занесите сведения о пяти автомобилях: двух "Москвичах" и трех "Волгах". После чего просмотрите созданный вами файл в редакторе Бейсика. Для этого надо в меню Файл выбрать команду Открыть, затем в появившемся диалоговом окне ввести имя файла avto.dat и нажать клавишу Enter. Вы увидите, что данные в файле записаны в кавычках, через запятую, т. е. все они текстового типа.
Чтение из файла
Чтение из файла производится аналогично записи, но – вместо режима output используется режим input. Будьте внимательны! Прочитаем занесенные нами данные из файла avto.dat.
' Программа чтения файла данных об автомобилях CLS INPUT " Введите имя файла"; F$ 1 Открытие файла OPEN F$ FOR INPUT AS #1 PRINT "База данных автомобилей на 17 декабря 2000 года" 1=1 DO PRINT "Вывести данные об"; I; "автомобиле?" INPUT "Для окончания введите QWE, для продолжения – <strong>Enter</strong>"; M$ IF UCASE$(M$)="QWE" OR UCASE$(M$)="ЙЦУ" THEN 1 INPUT #1, M$, N$, C$, G$, S$ PRINT M$, N$, C$, G$, S$ 1=1+1 LOOP UNTIL EOF(l) 1 Закрытие файла 1: CLOSE #1 PRINT "Файл закрыт"
Обратите внимание на оператор loop until eof(1). Он означает, что считывание ведется до тех пор, пока не будет обнаружен символ конца файла (end of file), а в скобках указан номер открытого файла.
Выведите с помощью этой программы данные о первых трех автомобилях.
Изменения данных в файле
Для изменения какой-либо записи, удаления старых или добавления новых данных в последовательном файле необходимо открыть два файла: подлежащий изменению и новый, в котором создается обновленная версия исходного файла. Старый файл в дальнейшем можно удалить. Приведенная ниже программа в файле avto.dat изменяет "МОСКВИЧ" на "МЕРСЕДЕС". В первых строках открываются исходный файл avto.dat и новый файл avto2.dat, сначала пустой. Очередная запись считывается из файла avto.dat и, при условии, что это не "МОСКВИЧ", переписывается без изменения в новый файл. Если же встречается значение "МОСКВИЧ", то оно заменяется на "МЕРСЕДЕС" путем присваивания нового значения переменной м$. В следующей строке данное значение попадает в выходной файл. После того как весь входной файл просмотрен, оба файла закрываются.
OPEN "avto.dat" FOR INPUT AS #1 OPEN "avto2.dat" FOR OUTPUT AS #2 FOR 1=1 TO 5 INPUT #1, M$, N$, C$, G$, S$ IF UCASE$(M$)="MOCKBM4" THEN М$="МЕРСЕДЕС" PRINT #2, M$, N$, C$, G$, S$ NEXT I CLOSE 1, 2 KILL "avto.dat" NAME "avto2.dat" AS "avto.dat" END
Заключительный этап – удаление исходного и переименование нового файла, которому придается прежнее имя, что обеспечивает и в дальнейшем наличие на дискете файла avto.dat.