встроен функции
TRANSCRIPT
Преподаватель Косарь О.В.Преподаватель Косарь О.В.
Тема:Тема:
ВыходВыход
Функции работыФункции работы со строками со строками
ВыходВыход
ФУНКЦИИ РАБОТЫ СО СТРОКАМИ
Строка в VBA может иметь переменную или постоянную длину.
Строка переменной длины занимает объем оперативной памяти, который может меняться в процессе выполнения программы.
Строка постоянной длины занимает фиксированный объем оперативной памяти.
Например: Dim strA As String Dim strB As String * 15 strA = "Программирование" strB = "Программирование"
ВыходВыход
ПриПри работе со строками используются работе со строками используются три функции удаления пробеловтри функции удаления пробелов::
Например: Dim strA As String Dim strB As String strA = " Строковая переменная " strB = LTrim(strA) strB = Trim(strA)
Функция Описание
LTrim Удаляет все пробелы в начале строки (слева – left)
RTrim Удаляет все пробелы в конце строки (справа – right)
Trim Удаляет все пробелы в начале и конце строки
ВыходВыход
ФункцииФункции преобразованияпреобразования
Например: Dim strA As String Dim strB As String strA = "Строковая переменная" strB = Replace(strA, "переменная", "константа")
Функция Описание
CStr или Str Преобразует число в строку
ValПреобразует строку в число
UCase Преобразует строку к верхнему регистру
LCase Преобразует строку к нижнему регистру
Replace Заменяет часть строки или определенные символы
ВыходВыход
ФункцииФункции выделения подстрокивыделения подстрокиФункция Описание
Left (строка, количество)Возвращает начало строки с указанным количеством символов
Right (строка, количество)
Возвращает подстроку с указанным количеством символов с конца строки
Mid (строка, номер[, количество])
Возвращает подстроку, содержащую указанное количество символов, начиная с указанного номера. Если количество не указано – возвращает символы до конца строки
ВыходВыход
Dim strA As StringDim strA As StringDim strB As StringDim strB As StringstrA = "Моя строковая переменная"strA = "Моя строковая переменная"strB = Left (strA, 3)strB = Left (strA, 3)strB = Right (strA, 10)strB = Right (strA, 10)strB = Mid (strA, 5, 9)strB = Mid (strA, 5, 9)
ФУНКЦИИФУНКЦИИ РАБОТЫРАБОТЫ С ФАЙЛАМИ С ФАЙЛАМИ
ВыходВыход
Файл последовательногоФайл последовательногодоступадоступа
представляет собой текстовый файл, состоящий
из записей переменной
длины, конец которой
отмечается символом возврата
каретки/перевода строки CRLF
Файл произвольногоФайл произвольногодоступадоступа Бинарный файлБинарный файл
сохраняет данные как ряд
записей фиксированного
размера,разрешается
непосредственный
доступ к каждой записи по ее
номеру
данные хранятся как неформатиро
-ванная последовате
ль-ность байтов
ВыходВыход
Режимы доступа к файлу Аргумент
mode Режим доступа к файлу
APPEND Последовательный доступ к файлу. Если filename уже существует, то новые данные присоединяются в конце этого файла. Если filename не существует, файл создается
BINARY Бинарный доступ к файлу, для чтения и записи данных. Если filename не существует, файл создается
INPUTПоследовательный доступ к файлу, только для чтения данных. Если filename не существует, оператор выдает ошибку
OUTPUT Последовательный доступ к файлу, только для записи данных. Если filename существует, файл удаляется и создается новый файл. Если filename не существует, файл создается
RANDOMПроизвольный доступ к файлу, для чтения и записи данных. Если filename не существует, файл создается. Этот режим файлового доступа используется по умолчанию, если аргумент mode не задан.
ВыходВыход
Открытие Открытие файловфайлов
Open filename For mode [Access access] Open filename For mode [Access access] [lock] As [lock] As #filenum [LEN=reclen]#filenum [LEN=reclen]
название файла (записывается полный путь)
режим доступа к файлу
операции, разрешенные с открытым файлом
доступ к файлу других процессов
дескриптор файла длина записи для файлов с произвольным
доступом и размербуфера для файлов с
последовательным доступом
ВыходВыход
ОПЕРАЦИИ, РАЗРЕШЕННЫЕ С ОТКРЫТЫМ ФАЙЛОМ
Файл открывается для чтения и для записи. Этот режим распространяется только на файлы и последовательные файлы, открытые для режима APPEND.
READREAD WRITEWRITE
Файл открывается только для записи
WRITEWRITE
Файл открывается только для чтения
READREAD
ОписаниеЗначение аргумента
access
ВыходВыход
ФУНКЦИИ РАБОТЫ С ТЕКСТОВЫМИ ФАЙЛАМИ
Для начала работы с текстовым файлом используется оператор открытия файла:
Open Open имя имя For For назначение назначение AsAs номер номер
•имя – полное имя файла•номер – номер файла•назначение – это ключевое слово
Input (считывание информации), Output (запись) или Append (добавление информации)
ВыходВыход
В качестве номера файла номер рекомендуется использовать переменную типа Integer, значение которой задается с помощью оператора присваивания номер = номер = FreeFileFreeFileЭтот опреатор должен находиться перед оператором Open; FreeFile – функция, возвращающая в программу незанятый номер файла.
ВыходВыход
По окончании работы с файлом его следует закрыть с помощью оператора Close.
Синтаксис:
CloseClose номерномерДля добавления в файл новых строк используется оператор Print.
Синтаксис:
PrintPrint ##номерномер, , строкастрока
ВыходВыход
Существует два способа извлечения информации из текстового файла:
1. с помощью оператора Line InputСинтаксис: LineLine Input #Input #номер, переменнаяномер, переменнаяЭтот оператор производит считывание из файла очередной строки, которая присваивается переменной строкового типа переменная
2. с помощью функции Input (Input (количество, номерколичество, номер))Эта функция возвращает в программу строку, содержащую указанное количество символов
ВыходВыход
Пример использования Пример использования функций работы с файламифункций работы с файлами
ВыходВыход
Sub Создание() Dim FName1 As String Dim FName2 As String Dim FNum1 As Integer Dim FNum2 As Integer Dim n1 As Long Dim n2 As Long Dim strA As String 'создание каталога texts: MkDir ("d:\texts") 'задаем имена файлов: FName1 = "d:\texts\a.txt" FName2 = "d:\texts\b.txt" ВыходВыход
'Создание файла a.txt:FNum1 = FreeFileOpen FName1 For Output As FNum1strA = "Создан текстовый файл,"Print #FNum1, strAPrint #FNum1, "который состоит из нескольких _ строк."
'находим количество символов в файле a.txt:
n1 = LOF(FNum1)Close FNum1MsgBox "В файле a.txt " & Str(n1) & “ символов."
ВыходВыход
'Копирование текста из файла a.txt в b.txt:
FNum1 = FreeFileOpen FName1 For Input As FNum1FNum2 = FreeFileOpen FName2 For Output As FNum2'в цикле считываем текст:Do Until EOF(FNum1)Line Input #FNum1, strA
Print #FNum2, strALoopClose FNum1
ВыходВыход
'Добавление новой строки в файл b.txt:
strA = "Добавлена новая строка."Print #FNum2, strAn2 = LOF(FNum2)Close FNum2FNum2 = FreeFileOpen FName2 For Input As FNum2'считывание символа:strA = Input(1, FNum2)Close FNum2MsgBox "В файле b.txt" & Str(n2) & "символов, " _ & "причем первый символ - " & strA
End SubВыходВыход
Результат работы программы:
ВыходВыход
Может потребоваться уничтожение файлов a.txt и b.txt и папки texts по окончании выполнения программы. Для этого перед строкой End Sub следует добавить операторы уничтожения файлов:
Kill (FName1) Kill (FName2) RmDir ("d:\texts")
ВыходВыход
Пример программы добавления строки в файл b.txt и запуска редактора Блокнот (Notepad)
Sub Добавление() Dim FNum As Integer Dim n As Long Dim RetVal ‘для функции Shell FNum = FreeFile
ВыходВыход
'Открытие файла b.txt и ввод новой строкиOpen "d:\texts\b.txt" For Append As FNumPrint #FNum, "Добавлена вторая новая
строка."'находим количество символов в файле b.txt:n = LOF(FNum)Close FNumMsgBox "В файле b.txt " & Str(n) & “
символов."'Запуск редактора БлокнотRetVal = Shell (“c:\Windows\notepad.exe”,
1)End Sub
ВыходВыход