- •Введение
- •Структура программы на vbScript
- •Переменные
- •Подтипы данных и функции преобразования типов
- •Константы
- •Встроенная функция вывода данных MsgBox
- •Встроенная функция ввода данных InputBox
- •Комментарии
- •Непрерывные строки
- •Операторы и операции
- •Пример 4
- •Пример 5
- •Пример 6
- •Пример 7
- •Пример 8
- •Пример 9
- •1.4 Задачи для самостоятельного решения
- •Логические операции
- •Оператор условного перехода: If … Then
- •2.3 Демонстрационные примеры Пример 1
- •Пример 2
- •Пример 3
- •Пример 4
- •Пример 5
- •Пример 6
- •Пример 7
- •2.4 Задачи для самостоятельного решения
- •Лабораторная работа 3. Операторы цикла в программах на vbscript
- •3.1 Цель работы
- •3.2 Теоретические сведения
- •For…Next (цикл со счетчиком)
- •Как выбрать, какой из циклов использовать в программе?
- •Пример 10
- •Пример 11
- •Пример 12
- •Пример 13
- •Пример 14
- •Пример 15
- •Пример 16
- •3.4 Задачи для самостоятельного решения
- •Передача параметров с помощью ключевых слов ByVal и ByRef
- •Функции
- •Пример 4
- •Пример 5
- •4.4 Задачи для самостоятельного решения
- •Лабораторная работа 5. Программирование алгоритмов при помощи рекурсивных процедур и функций
- •5.1 Цель работы
- •5.2 Теоретические сведения
- •5.3 Демонстрационные примеры Пример 1
- •Пример 2
- •Пример 3
- •Пример 4
- •5.4 Задачи для самостоятельного решения
- •Лабораторная работа 6. Массивы
- •6.1 Цель работы
- •6.2 Теоретические сведения
- •Перебор элементов массива
- •6.3 Демонстрационные примеры Пример 1
- •Пример 2
- •Пример 3
- •Пример 4
- •Пример 5
- •Пример 6
- •Пример 7
- •Пример 8
- •6.4 Задачи для самостоятельного решения "Заполнение" массивов
- •Массивы. Исследование и поиск
- •Модификация массивов
- •Лабораторная работа 7. Алгоритмы поиска в регулярном типе данных. Простейшие классические алгоритмы. Сортировка в массиве
- •7.1 Цель работы
- •7.2 Теоретические сведения
- •Сортировка обменом
- •Сортировка выбором
- •Сортировка включениями
- •Сортировка бинарными включениями
- •Шейкер-сортировка
- •7.3 Демонстрационные примеры Пример 1
- •Пример 2
- •Пример 3
- •Пример 4
- •Пример 5
- •Пример 6
- •Пример 7
- •Пример 8
- •Пример 9
- •Пример 10
- •7.4 Задачи для самостоятельного решения
- •Лабораторная работа 8. Строковый тип данных в программах на vbscript
- •8.1 Цель работы
- •8.2 Теоретические сведения
- •Другие функции необходимые для работы со строками
- •Основные функции для работы с датой и временем:
- •8.3 Демонстрационные примеры Пример 1
- •Пример 2
- •Пример 3
- •Пример 4
- •Пример 5
- •Пример 6
- •Пример 7
- •Пример 8
- •Пример 9
- •8.4 Задачи для самостоятельного решения Модификаторы
- •“Вычеркиватели” (частный случай модификаторов)
- •Наблюдатели (предикаты)
- •Подсчет
- •Поиск в словах
- •Литература
- •Данчул а.Н. Информатика: Учебник. – м.: рагс , 2004 г. - 528 с.
- •Содержание
8.2 Теоретические сведения
Для работы с символьной информацией используют структуру данных – строка. В языке VBScript нет символьного типа данных.. В VBS этот тип замещен типом String или строковым типом, то есть если мы хотим работать с отдельным символом, нам всё равно приходится работать с ним как со строкой.
Строка состоит из последовательности символов, которые являются элементами кодовой таблицы ASCII. Всего в данной таблице 256 символов, которые пронумерованы (то есть имеют код) от 0 до 255. Все символы кодовой таблицы ASCII упорядочены в соответствии с расположением в этой таблице. Например, символ «А» меньше символа «Б» и тем более меньше символа «а». Объяснение этому очень простое код символа «А» - 192, «Б» - 193, а «а» - 224. в демонстрационных примерах находится программа ASCII.vbs, которая выводит последовательно все символы данной таблицы.
Мы уже сталкивались с данными типа String при работе с функцией MsgBox (в качестве основного аргумента используется не что иное, как данные строкового типа). Попробуем кратко его описать. Этот тип индексирован, то есть можно получить доступ к любой части строки, зная номер символа с которого начинается искомая часть. На этом типе данных можно производить сравнение переменных. Каждая строка (а именно так общепринято называть переменные и константы этого типа) рассматривается в лексикографическом формате. Сначала по коду в таблице ASCII сравниваются первые их символы (так будем называть строку из одного элемента), если код первого символа первой строки больше кода первого символа второй строки то первая строка больше второй, если меньше, то соответственно наоборот. Если же первые символы по коду равны, то сравнение переходит на второй символ если и это не прояснит ситуацию, то перебираются следующие символы до конца строки. Если в первой строке окажется меньше символов чем во второй, и при этом первая строка является началом второй, то первая строка меньше второй. Строки равны тогда и только тогда, когда последовательно равны коды каждого из символов, входящих в сравниваемые строки.
Количество входящих в строку символов называется длиной строки.
Строка нулевой длины называется пустой строкой. Естественно, она меньше любой другой строки.
В языке VBS объявление строк ничем не отличается от объявления любой другой переменной:
Dim str
Где dim – ключевое слово при объявлении переменных;
str – интендификатор (имя переменной).
Для того чтобы чтобы «положить» в переменную str строку: «Это строка номер 1», надо воспользоваться оператором присваивания:
Str=”Это строка номер 1”
Надо отметить тот факт, что сейчас в программировании наиболее распространено именно программирование на строках. В частности, язык гипертекстовой разметки HTML, на котором построено всё Интернет-программирование оперирует только строками.
В связи с выше сказанным все современные языки программирования, в том числе и VBScript представляют развитые средства для работы со строками.
Рассмотрим некоторые из них.
Для работы со строками может потребоваться получение данных в виде строки из других типов данных. Для этого используется уже знакомая функция «CStr»(Convert to String – преобразование в строку).
Таблица 12 – Типы аргументов, возвращаемые функцией CStr
Тип аргумента |
Что возвратит функция CStr |
Boolean |
Строковую константу «Истина» или «Ложь» |
Date |
Дату в виде дд.мм.гг (день.месяц.год) |
Empty (неинициализированная переменная) |
Пустая строка |
Числовые форматы Long, Double… |
Представление числа виде строки |
Большинство других типов |
Вызовут ошибку программы |
Интересны также функции обратного преобразования. Их список можно посмотреть в первой лабораторной работе.
Чтобы избежать ошибок преобразования из строки в другой тип данных применяются функции проверки содержимого строки:
IsDate возвращает значение «Истина», если строка представима виде даты, и «Ложь» в противном случае.
IsNumeric возвращает значение «Истина», если строка представима виде числа и «Ложь» в противном случае.
Теперь же рассмотрим различные функции работы со строками:
Таблица 13 - Функции работы со строками
Название функции |
Описание работы функции |
Тип аргумента |
Тип функции |
Mid(str, start[, len]) |
Возвращает подстроку строки str, начиная с позиции start длиной len. Если len не указан возвращаются все символы начиная со start |
Str:string Start,len:Integer |
String |
Len(str) |
Возвращает длину строки str |
Str:string |
Integer |
Str1+Str2 |
Возвращает конкатенацию str1 и str2 Рекомендуется к использованию только, если Вы уверены, что Str1и Str2 типа string |
Str1,Str2:string |
String |
Str1&Str2 |
Возвращает конкатенацию str1 и str2 |
Str1,Str2:string |
String |
InStr([start, ] source, pattern) |
Возвращает индекс символа, начиная с которого pattern входит в source. Если указан параметр start, поиск начинается с него. Поиск идет слева направо. Если source=””, то InStr-0 Если pattern=”” , то InStr-start Если pattern не найден в source, то InStr-0 Если start>len(pattern), то InStr – 0???? |
Start:integer Source:string pattern:string |
Integer |
InStrRev(source, pattern[ ,start]) |
То же, что InStr, но поиск происходит справа налево с позиции start. |
Start:integer Source:string pattern:string |
Integer |
Рассмотрим другие функции необходимые для работы со строками: