Главная страница
Навигация по странице:

  • INPUT

  • APPEND

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

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

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

  • Изменения данных в файле

  • Добавление данных в файл

  • Методич_стат-исправлено. Методические указания по курсу Информатика


    Скачать 2.11 Mb.
    НазваниеМетодические указания по курсу Информатика
    АнкорМетодич_стат-исправлено.doc
    Дата12.03.2019
    Размер2.11 Mb.
    Формат файлаdoc
    Имя файлаМетодич_стат-исправлено.doc
    ТипМетодические указания
    #25584
    страница21 из 23
    1   ...   15   16   17   18   19   20   21   22   23

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


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

    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 # номер_файла, выражение

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

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

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

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

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

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

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

    CLS

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

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

    OPEN F$ FOR INPUT AS #1

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

    I=1

    DO

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

    INPUT "Для окончания введите QWE, для продолжения -"; 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(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 i=1 TO 5

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

    IF UCASE$(M$)-"МОСКВИЧ" THEN М$-"МЕРСЕДЕС"

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

    NEXT i

    CLOSE 1, 2

    KILL "avto.dat"

    NAME "avto2.dat" AS "avto.dat"

    END

    Заключительный этап — удаление исходного и переименование нового файла, которому придается прежнее имя, что обеспечи­вает и в дальнейшем наличие на дискете файла avto.dat.

    Добавление данных в файл

    Указание for append в операторе open подготавливает файл для вывода данных и смещает указатель на конец файла. Последую­щие операторы приписывают новую информацию к уже имею­щейся. В предложенной далее программе в файл данных об ав­томобилях добавляются сведения о двух новых поступлениях.

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

    CLS

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

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

    OPEN F$ FOR APPEND AS 1

    DO

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

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

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

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

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

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

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

    LOOP

    REM Закрытие файла 1

    CLOSE #1

    PRINT "Файл дополнен"'
    1   ...   15   16   17   18   19   20   21   22   23


    написать администратору сайта