Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Старые+лабы+по+VBA.doc
Скачиваний:
3
Добавлен:
05.09.2019
Размер:
70.66 Кб
Скачать

Практическая работа работа с файлами в vba. Файлы последовательного доступа

Цели работы:

  • познакомиться с типами файлов;

  • освоить процедуры чтения, записи и обработки файлов;

  • научиться обрабатывать информацию, хранящуюся в файлах последовательного доступа.

ЗАДАНИЯ

  1. Файл - это поименованная область внешней памяти. С точки зрения программы работа с файлом делится на этапы: открытие файла с учетом типа доступа и присваивание ему уникального номера, процесс чтения и/или записи в зависимости от способа доступа и закрытие файла. Существует три типа файлов: последовательного доступа, произвольного доступа и бинарные.

  2. Файлы последовательного доступа еще называют текстовыми файлами, так как в них информация храниться в виде текста - строк разной длины1. Даже если записывать в него числа, то перед выводом они превращаются в строку. Их особенность является то, что при открытии однозначно выбирается направление информационного потока: либо запись (Output), либо чтение (Input), либо дозапись в конец (Append). Так как элементы файла имеют разную длину, то попасть в конкретную позицию файла можно только, начав читать с начала и прочитав последовательно весь текст до этой позиции (отсюда и название). Начнем с создания файла - Output. Если файл не существует, то он создается, если существует, тогда стирается все его содержимое. Строчки будем считывать из ячеек первого столбца (пока там есть информация), и записывать их построчно в файл с добавлением номера строки в начале. Запись осуществляется командой Print, причем каждый раз после выполнения команды в файл автоматически добавляется признак конца строки. Файл закрывается командой Close.

Sub outFile()

Open "exampl.txt" For Output As #1

'открываем файл на запись и присваиваем ему номер 1

j = 1

Do Until Cells(j, 1) = ""

'запись осуществляем до тех пор пока не встретиться пустая ячейка

Print #1, j, Cells(j, 1) 'выводим в файл номер строки и содержимое j-ой ячейки 1-го столбца

j = j + 1 'увеличиваем номер строчки

Loop

Close #1 'обязательно нужно закрыть файл!

End Sub

Откройте созданный файл в блокноте и посмотрите результат.

  1. Следующий этап - это чтение из файла - Input. Открывать на чтение можно только существующий файл! При чтении важно знать, не достигнут ли конец файла (точнее его признак EOF), чтобы вовремя остановить чтение, так как чтение из конца файла невозможно. Функция EOF истинна, если достигнут конец файла. Чтение осуществляется двумя командами Input и Line Input. В первом случае читается информация поэлементно, (например, в нашем случае сначала будет считываться число, а затем строка), а во втором случае - чтение будет осуществлять строкой (т.е. и номер, и строка представляют собой одну строку). Проиллюстрируем сказанное:

Sub inFile()

i = 1

Open "exampl.txt" For Input As #1

'открываем файл на чтение и присваиваем ему номер 1

Do While Not EOF(1) ' Повторяем, пока не конец файла

Line Input #1, j ‘читаем всю строку