Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
vba.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

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

Один из форматов оператора открытия файла (OPEN) имеет вид:

OPEN<имя файла>FOR<тип обработки>AS<номер файла>.

Примеры:

OPEN “С:\STUDENT\PROBA.txt” FOR Output AS 1

OPEN “A:\БВ1\Лаб6.txt” FOR Input AS 2

OPEN “BV.DAT” FOR Append AS 3

Закрытие файла ( оператор close).

Закрытие файла осуществляется с помощью оператора CLOSE, с указанием номера закрываемого файла.

Например:

CLOSE #1

CLOSE #2

CLOSE #3

Перед номером файла в записях ставят символ #.

Операторы CLOSE (без указания номера файла), STOP и END автоматически закрывают все открытые файлы.

Формат оператора input:

Для считывания информации из файла используют оператор INPUT, формат которого имеет вид:.

INPUT#<номер файла>,<переменная>[,<переменная]…

Переменные идут через символ [,].

Пример:

Пусть строковая переменная str содержит имя файла, откуда будет считываться информация

OPEN str for INPUT as 1

INPUT#1, x,y,z

Переменные x, y, z из открытого файла, мы могли считать, например, в таким образом:

INPUT#1, x

INPUT#1, y, z

Естественно, что в том файле, откуда считываются данные, они должны идти в том порядке, что и в операторе INPUT, например, следующим образом:

5, 10, -7

После считывания информации x=5, y= 10, z=-7

Замечание 1.

При вводе данных разделителем между данными могут быть запятая , пробел или перевод строки.

Следовательно, в нашем примере данные в файле могли быть записаны в виде:

5 10 -7

Замечание 2.

Символьные переменные могут стоять как в кавычках (“Ваня”), так и без них (Ваня).

Операторы вывода в файл print и write

Формат этих операторов:

PRINT#<номер файла>,<список выражений>

WRITE#<номер файла>,<список выражений>

Разделители [,] и [;] между переменными как в привычном методе PRINT, как, впрочем, и функциях SPC() и ТАВ().

Основные отличия PRINT и WRITE:

WRITE – выводит символьные переменные в кавычках, разделив данные запятыми.

Пример.

х=5: y=3: z=”БМС”

PRINT#1, “Пример”, “Вася”; “Петя”

WRITE#1, “Пример”, “Вася”; “Петя”

Будет выдана информация:

Пример Вася Петя для оператора PRINT

“Пример”, “Вася”, ”Петя” для оператора WRITE

PRINT#1, x*y, 5*20; z

WRITE#1, x*y, 5*20; z

Будет выдана информация:

15 100 БМС, для оператора PRINT

15, 100, “БМС”, для оператора WRITE

PRINT#1, “x=”;

PRINT#1, x

WRITE#1, “x=”;

WRITE#1, x

Будет выдана информация:

х=5 две строки PRINT

х=,5 две строки WRITE. Обратите внимание – появилась запятая!

Среди функций, используемых при обработке файлов отметим функцию EOF (End of File) – проверка достижения конца файла. Функция принимает 2 значения – истина или ложь. Если достигается конец файла – истина, нет – ложь.

Формат функции eof

EOF (<номер файла>)

Пример использования.

OPEN ”DD.txt” FOR INPUT AS #1

До UNTIL EOF(1)

<действия>

LOOP

Действия повторятся пока функция EOF(1) ложна, т. е. пока не достигнем конца файла.

Оператор EOF() часто используется, когда неизвестно, сколько информации необходимо считать. Например, мы должны считать информацию об одномерном массиве, а сколько в нём элементов заранее неизвестно. Как поступить?

1 этап. Открыть файл

2 этап. Подготовить переменную, в которой будет храниться информация о размере массива (первое значение переменной n=0)

3 этап. Считывать элементы массива в одну и ту же фиктивную переменную (например х) по ходу увеличивая информацию о размере массива

4 этап. После того, как массив прочитаем, закрыть файл. В переменной n хранится нужная информация о размере.

5 этап. Определить размер массива (Dim или Redim)

6 этап. Считать массив

Фрагмент программы.

OPEN “DATA.txt” FOR INPUT AS 1

n=0

DO UNTIL EOF(1)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]