Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное-пособие-№1.doc
Скачиваний:
17
Добавлен:
09.04.2015
Размер:
969.22 Кб
Скачать

6.4.Запись в файл

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

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 OCASE$(М$)="ЙЦУ" THEN 1

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

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

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

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

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

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

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

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

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

ИЛИ

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

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

Для закрытия файлов применяется оператор

CLOSE # номер_файла

Если номер файла в операторе close указан, то будет закрыт именно этот, вполне определенный файл. Если же номер не ука­зан, будут закрыты все открытые файлы.

6.5.Чтение из файла

Чтение из файла производится аналогично записи, но — вместо режима output используется режим input. Прочитаем занесенные нами данные из файла avto.dat.

' Программа чтения файла данных об автомобилях

CLS

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

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

OPEN F$ FOR INPUT AS #1

PRINT "База данных автомобилей на 17 декабря 2000 года"

I=1

DO

PRINT "Вывести данные об"; I; "автомобиле?"

INPUT "Для окончания введите QWE, для продолжения -<Enter>"; M$

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

INPUT #1, M$, N$, C$, G$, S$

PRINT M$, N$, C$, G$, S$

I=I+1

LOOP UNTIL EOF(l)

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

1 :close #1

PRINT "Файл закрыт"

Оператор loop until eof(1) . Означает, что считывание ведется до тех пор, пока не будет обнаружен символ конца файла (end of file), а в скобках указан номер от­крытого файла.