Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемГерасим Селивантьев
1 Текстовые файлы в VBA
2 Чтобы начать работу с файлом, его необходимо открыть: Open For As # Имя файла – строка, указывающая полный путь к файлу Режим – режим открытия файла: для записи, для чтения, для добавления Номер канала – целое число от 1 до 511. Номер канала является глобальным. Каждому открытому файлу должен соответствовать свой номер канала. Пример: Open "Н:\MyFile.txt" For Output As #1 Открывается для записи файл MyFile.txt на диске Н:, ему в соответствие ставится канал с номером 1.
3 Рассмотрим более подробно режимы открытия файлов Для записи (для вывода) Output В этом случае создается новый пустой файл с указанным именем. Мы можем только записывать в него. Для записи используется оператор Print Print #, Пример: Print #1, Добрый день Записывает строчку Добрый день в файл, связанный с каналом 1. Каждый новый оператор Print записывает текст в файл с новой строки.
4 После окончания работы с файлом его необходимо закрыть Для этого используется оператор Close Close # Пример: Sub GoodDay() Open H:\MyFile.txt" For Output As #1 Print #1, Добрый день Close #1 End Sub
5 Рассмотрим следующую программу Sub my() Dim K As Integer Open H:\MyFile.txt" For Output As #1 For K = 1 To 7 Print #1, Str(K) + "-й день недели - " + WeekdayName(K) Next K Close #1 End Sub Вопрос Что запишется в файл?
6 1-й день недели - понедельник 2-й день недели - вторник 3-й день недели - среда 4-й день недели - четверг 5-й день недели - пятница 6-й день недели - суббота 7-й день недели - воскресенье
7 Как было сказано ранее, при открытии файла в режиме Output, создается новый пустой файл. Если необходимо добавить строки к уже существующему файлу, то его надо открыть для добавления Open "H:\MyFile.txt" For Append As #1 В этом случае открывается существующий файл, курсор устанавливается после последней строчки. Операторы Print будут добавлять новый текст далее.
8 Если необходимо получить данные из уже существующего текстового файла, то его надо открыть для чтения (для ввода) Open H:\MyFile.txt" For Input As #1 В этом случае открывается существующий файл, курсор устанавливается на начало первой строчки. Для получения данных из файла (чтения из файла) используют следующий оператор Line Input #, При каждом использовании этого оператора в записывается текущая строка файла, а курсор перемещается в начало следующей строки
9 Рассмотрим следующий пример Sub Example1() Dim S As String Open H:\MyFile.txt" For Input As #1 Line Input #1, S MsgBox S Close #1 End Sub При каждом запуске процедуры будем получать
10 Следующая процедура Sub Example2() Dim K As Integer Dim S As String Open H:\MyFile.txt" For Input As #1 For K = 1 To 7 Line Input #1, S ActiveSheet.Cells(K, 1).Value = S Next K Close #1 End Sub Заполнит ячейки с A1 по A7 содержимым файла.
11 Не всегда известно количество строк в файле. В этом случае необходимо воспользоваться логической функцией EOF ( ) Она возвращает истину, если достигнут конец файла, и ложь в противном случае. Обратите внимание, что знак # перед номером канала не ставится. Sub Example3() Dim K As Integer Dim S As String Open "H:\MyFile.txt" For Input As #1 K = 0 Do Until EOF(1) Line Input #1, S K = K + 1 ActiveSheet.Cells(K, 1).Value = S Loop Close #1 End Sub
12 Если в программе используется много файлов, которые периодически открываются и закрываются, то нелегко уследить за тем, какие номера каналов используются, а какие свободны. В этом случае удобно использовать функцию FreeFile, которая возвращает номер первого свободного канала. Sub Example4() Dim K As Integer Dim N As Integer Dim S As String N = FreeFile Open " H:\ MyFile.txt" For Input As #N K = 0 Do Until EOF(N) Line Input #N, S K = K + 1 ActiveSheet.Cells(K, 1).Value = S Loop Close #N End Sub
13 Задачи Задача 1 Написать программу, которая переписывает в текстовый файл содержимое всех выделенных ячеек (для каждой ячейки отдельная строка файла). Имя файла вводится с клавиатуры. Задача 2 Написать программу, которая подсчитает сколько раз встречается в текстовом файле заданная строка. Имя файла и искомая строка вводятся с клавиатуры. Задача 3 Написать программу, которая запишет во второй текстовый файл номера тех строк первого текстового файла, которые совпадают с заданной строкой. Имена файлов и искомая строка вводятся с клавиатуры.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.