Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Язык Visual Basic for Applications Билеты Bilety_Po_Programmirovaniyu.docx
Скачиваний:
31
Добавлен:
15.03.2015
Размер:
458.22 Кб
Скачать

Следующие три функции позволяют работать с массивом строк

  • Split (<строка> [, <разделитель>]) - преобразует строку в массив подстрок. По умолчанию в качестве разделителя используется пробел. Данную функцию удобно использовать для разбиения предложения на слова. Однако можно указать в этой функции любой другой разделитель. Например, Split(3, «Это тестовое предложение») возвращает массив из трех строковых значений: «Это», «тестовое», «предложение».

Join (<массив Строк> [, <разделитель>]) - преобразует массив строк в одну строку с указанным разделителем.

' Соединяем два слова

Dim vArr(1 to 2)

Dim retval as String

vArr(1)="Русский"

vArr(2)="Проект"

retval=Join(vArr,"_")

Print retval

  • Filter (<массив Строк>, <строка Поиск>[, <включение>] [, <сравнение>]) - просматривает массив строковых значений и ищет в нем все подстроки, совпадающие с заданной строкой.

Эта функция имеет четыре аргумента:

  • <строка Поиск> - искомая строка;

  • <включение> - параметр (boolean значение), который указывает, будут ли возвращаемые строки включать искомую подстроку или, наоборот, возвращаться будут только те строки массива, которые не содержат искомой строки в качестве подстроки;

  • <сравнение> - параметр, определяющий метод сравнения строк.

Еще три функции обеспечивают преобразование строк:

  • LCase (<строка>) - преобразует все символы строки к нижнему регистру, например функция LCase(«ПОЧTA») возвращает строку «почта»;

  • ' Преобразуем строчку в нижний регистр

  • Form1.Caption=LCase("РусСкий_ПРОект")

  • UCase (<строка>) - преобразует все символы строки к верхнему регистру;

  • ' Преобразуем строчку в верхний регистр

  • Form1.Caption=UCase("русский_проект")

  • StrConv (<строка>, <преобразование>) - выполняет несколько типов преобразований строки в зависимости от второго параметра. Этот параметр описывается встроенными константами, например функция StrConv(«poccия», VbProperCase) возвращает значение «Россия».

  • Dim mystring

  • mystring = "русский проект"

  • ' Преобразуем первые буквы в прописные

  • Print StrConv(mystring, vbProperCase)

И последние две функции генерируют строки символов

  • Space (<число>) - создает строку, состоящую из указанного числа пробелов;

  • Dim MyString

  • ' Вставляем 10 пробелов между словами

  • MyString = "Русский" & Space(10) & "Проект"

  • MsgBox MyString

  • String (<число>, <символ>) - создает строку, состоящую из указанного в первом аргументе числа символов. Сам символ указывается во втором аргументе.

  • ' В данном примере функция String

  • ' используется для генерации строк,

  • ' содержащих указанное число

  • ' повторяющихся символов

  • Dim MyString

  • MyString = String(3, "M") ' Возвращает "MMM"

  • MyString = String(5, 65) ' Возвращает "ААААА".Возвращает 5 раз символ,код которого 65

  • MyString = String(6, "Русский_Проект") ' Возвращает "РРРРРР".Повторяет 6 раз первый символ исходной строки

  1. Функции работы с датами. Примеры.

Date()— возвращает текущую системную дату. Установить ее можно при помощи одноименного оператора, например, так:

   1 пример: Date = #5/12/2006#

2 пример:' Выводим текущую системную дату в заголовке формы

Dim Today

Today=Date ' узнаем текущую системную дату

' Преобразуем в строку и выводим в заголовке формы

Form1.Caption = CStr(Today)

Time() — возвращает текущее системное время

Now() — возвращает дату и время вместе.

' Выводим текущую системную дату и время

Dim Today

Today=Now ' узнаем текущую системную дату и время

' Преобразуем в строку и выводим на форме

Print CStr(Today)

DateAdd() — возможность добавить к дате указанное количество лет, кварталов, месяцев и так далее — вплоть до секунд.

' Вычисляем дату на 15 дней более позднюю, чем текущая

Dim Today

Dim NewDate As Date

Today=Date ' узнаем текущую системную дату

NewDate=DateAdd("y",15,Today)

' Преобразуем в строку и выводим в заголовке формы

Form1.Caption = CStr(NewDate)

DateDiff() — возможность получить разницу между датами (опять таки в единицах от лет до секунд).

 1 пример:   Dim lDaysCnt As Long

    lDaysCnt = DateDiff("d", "20.11.2012", Now)

    MsgBox "С 20.11.2012 прошло дней: " & lDaysCnt

2 пример:' Вычисляем сколько дней осталось до 21 века

Dim Today as Date' сегодняшний день

Dim Millenium As Date' 1 день 21 века

Dim retval' возвращаемое значение

Today=Date ' узнаем текущую системную дату

Millenium="01.01.01"

retval=DateDiff("d",Today,Millenium)

Form1.Caption = CStr(retval) ' выводим в заголовке формы

Первый аргумент определяет период времени, в котором необходимо вернуть разницу между датами. Допустимые значения: "yyyy" Год "q" Квартал "m" Месяц "y" День года "d" День "w" День недели "ww" Неделя "h" Час "n" Минута "s" Секунда

DatePart() — очень важная функция, которая возвращает указанную часть даты (например, только год, только месяц или только день недели):

    MsgBox "Номер недели года: " & DatePart("ww", Now)

Первый аргумент — период времени. Принимаемые значения те же, что и для функции DateDiff

DateSerial() — возможность создать значение даты, задавая месяц, год и день числовыми значениями:

' Вычисляем дату, предшествующую

' на 5 дней дате 1 августа 1966 года

Dim MyDate

MyDate = DateSerial(1966, 8,1 -4) ' возвращает 27.07.66

Print MyDate

DateValue()— делает то же, что и DateSerial(). Отличия — в формате принимаемых значений. Эта функция в качестве аргумента принимает дату в текстовом формате и преобразует её в формат даты:

' Извлекаем дату из строки

Print DateValue("27 Июля 1966")

Аналогичным образом (для времени) работают TimeSerial() и TimeValue()

'В этом примере аргументами функции TimeSerial

' являются не абсолютные значения,

' а числовые выражения. Возвращается время,

' на 6 часов и 15 минут более раннее,

' чем полдень, т.е. 5:45:00

Dim myTime

myTime=TimeSerial(12 - 6, -15, 0)

Day(), Year(), Month(), Weekday(), Hour(), Minute(), Second() — специализированные заменители функции DatePart(), которые возвращают нужную часть даты/времени (которую именно — видно из названия).

' Используем функцию для

' определения дня недели, соответствующего

' указанной дате

Dim MyDate

MyDate = "Июль 27, 1966" ' Присваиваем дату

Print Weekday(MyDate,vbMonday) ' возвращается 3, поскольку

' MyDate соответствует среде

' Выводим номер июля

Form1.Caption = Month("27/07/66")

' Определяем час,

' соответствующий указанному времени

Dim MyTime, MyHour

MyTime = #4:35:17 PM# ' присваиваем время

MyHour = Hour(MyTime) ' MyHour содержит 16

Print MyHour

' Вычисляем значение минуты

' из сегодняшней даты

Dim MyMinute

MyTime = Now

MyMinute = Minute(MyTime)

' Получаем значение минут

Print MyMinute

' Вычисляем значение секунды

Dim MyTime, MySecond

MyTime = #4:35:17 PM# ' присваиваем время

' MySecond содержит 17

MySecond = Second(MyTime)

Print MySecond

MonthName() — возвращает имя месяца словами по его номеру. Возвращаемое значение зависит от региональных настроек. Если они русские, то вернется русское название месяца.

' Выводим полное название седьмого месяца

Form1.Caption = MonthName(7)

Timer() — возвращает количество секунд, прошедших с полуночи.

' Используем Timer для

' временной остановки приложения.

' Кроме того, используем инструкцию DoEvents для передачи

' управления другим процессам на время паузы

Dim PauseTime, Start, Finish, TotalTime

If (MsgBox("Нажмите Да, чтобы прервать выполнение на 5 секунд", 4)) = vbYes Then

PauseTime = 5 ' Задает длительность

Start = Timer ' Задает начало паузы

Do While Timer < Start + PauseTime

DoEvents ' Передает управление другим процессам

Loop

Finish = Timer ' Задает конец паузы

TotalTime = Finish - Start ' Вычисляет длительность паузы

MsgBox "Длительность паузы: " & TotalTime & " секунд"

Else

End

End If