Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Программирование для администраторов
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

2.3 Переменные

Переменные в VBScript, объявления переменных, соглашения об именовании переменных, типы данных VBScript, присваивание значений переменным

Переменные — это контейнеры для хранения изменяемых данных. Без них не обходится практически ни одна программа. Для простоты переменную можно сравнить с номерком в гардеробе — вы сдаете в гардероб какие-то данные, в ответ вам выдается номерок. Когда вам опять потребовались эти данные, вы "предъявляете номерок" и получаете их. Пример работы с переменными в VBScript может выглядеть так:

Dim nMyAge

nMyAge = nMyAge + 10

MsgBox nMyAge

Перед работой с переменной настоятельно рекомендуется ее объявить. Объявление переменной в нашем примере выглядит так:

Dim nMyAge

Расшифруем эту строку.

  • Dim — это область видимости переменной. В VBSript предусмотрено 3 ключевых слова для определения области видимости переменных:
    • Dim — используется в большинстве случаев. Если переменная объявлена как Dim в области объявлений модуля, то она будет доступна во всем модуле, если в процедуре — только на время работы этой процедуры.
    • Private — при объявлении переменных в стандартных модулях VBScript значит то же, что и Dim. Отличия проявляются только при создании своих классов (эта тема в данном курсе не рассматривается).
    • Public — такая переменная будет доступна всем процедурам во всех модулях данного проекта, если вы объявили ее в области объявлений модуля. Если вы объявили ее внутри процедуры, она будет вести себя как Dim.

Если нет никаких особых требований, то имеет смысл всегда выбирать область видимости Dim.

Второе слово в нашем объявление (nMyAge) — это идентификатор (проще говоря, имя) переменной. Правила выбора имен в VBScript едины для многих элементов (переменные, константы, функции, процедуры и т. п.):

  • имя должно начинаться с буквы;
  • не должно содержать пробелов и символов пунктуации (исключение — символ подчеркивания);
  • максимальная длина — 255 символов;
  • должно быть уникальным в текущей области видимости;
  • зарезервированные слова (те, которые подсвечиваются синим цветом в окне редактора кода) использовать нельзя.

При создании программ VBScript настоятельно рекомендуется определиться с правилами, по которым будут присваиваться имена объектам — соглашение об именовании. Чаще всего используется так называемое венгерское соглашение (в честь одного из программистов Microsoft, Charles Simonyi, венгра по национальности):

  • имя переменной должно начинаться с префикса, записанного строчными буквами. Префикс указывает, что именно будет храниться в этой переменной:
  • str (или s) — String, символьное значение;
  • fn (или f) — функция;
  • sub — процедура;
  • c (или все буквы имени заглавные) — константа;
  • b — Boolean, логическое значение (True или False);
  • d — дата;
  • obj (или o) — ссылка на объект;
  • n — числовое значение;

имена функций, методов и каждое слово в составном слове должно начинаться с заглавной буквы:

MsgBox objMyDocument.Name

Sub CheckDateSub()

В ранних версиях VBScript не было слова Const, все константы определялись как переменные, а для отличия их записывали заглавными буквами, между словами ставили символ подчеркивания, например COMPANY_NAME.

Многие программисты используют такой подход для обозначения констант и сейчас (но использование ключевого слова Const теперь обязательно — об этом будет рассказано в разд. 3.4).

Уникальной особенностью VBScript является то, что переменные в нем нельзя объявлять с определенным типом данных. Все переменные объявляются как Variant. А уже в процессе работы скрипта Variant может принимать любой из имеющихся подтипов данных (в переменную типа Variant также можно поместить ссылку на объект).

В VBScript предусмотрены следующие подтипы данных для типа Variant:

числовые:

·        Byte — целое число от 0 до 255;

·        Integer — целое число от -32 768 до 32 767;

·        Long — большое целое число от -2 147 483 648 до 2 147 483 647;

·        Currency — большое десятичное число с 19 позициями, включая 4 позиции после запятой;

·        Decimal — еще большее десятичное число с 29 позициями (после занятой можно использовать от 0 до 28 позиций);

·        Single и Double — значения с плавающей запятой (Double в 2 раза больше));

·        строковые (String переменной длины (примерно до 2 млрд. символов) и фиксированной длины (примерно до 65 400 символов))

·        дата и время (Date — от 01.01.100 до 31.12.9999);

·        логический (Boolean — может хранить только значения True и False);

·        объектный (Object — хранит ссылку на любой объект в памяти);

В принципе, в VBScript можно работать и без объявления переменных. Например, такой код

nVar1 = nVar1 + 1

MsgBox nVar1

будет вполне работоспособным. Если мы используем переменную в программе без ее объявления, то будет автоматически создана новая переменная типа Variant. Однако объявлять переменные нужно обязательно! И при этом желательно явно указывать нужный тип данных. Потому что:

  • сокращается количество ошибок: программа с самого начала откажется принимать в переменную значение неправильного типа (например, строковое вместо числового);
  • при работе с объектами подсказка по свойствам и методам в PrimalScript действует только тогда, когда мы изначально объявили объектную переменную с нужным типом.

Все опытные разработчики вообще запрещают использовать переменные без явного их объявления. Для этого можно воспользоваться специальной командой компилятора:

Option Explicit

Проиллюстрировать, зачем они это делают, можно на простом примере:

Dim n

n = n + 1

MsgBox п

С виду код не должен вызывать никаких проблем и просто выводить в окне сообщения единицу. На самом деле он выведет пустое окно сообщения. Причина спрятана очень коварно: в третьей строке n — это вовсе не английская буква N, а русская П. На вид в окне редактора кода отличить их очень сложно. В то же время компилятор VBScript, встретив такой код, просто создаст новую переменную с типом данных Variant, у которой будет пустое значение. На выявление такой ошибки может потребоваться определенное время. В то же время при установленном Option Explicit проблема определяется мгновенно.

Можно объявить несколько переменных в одной строке, например так:

Dim nVar1, s1

Присвоение значений переменным выглядит так:

nVar1 = 30

Если нужно увеличить уже существующее значение переменной, то команда может выглядеть так:

nVar1 = nVar1 + 1

В обоих примерах знак равенства означает не "равно", а "присвоить".

При присвоении значений переменным нужно помнить о следующем:

  • строковые значения всегда заключаются в двойные кавычки:

sVar1 = "Hello"

  • значение дата/время заключается в символы "решетка" (#):

dVar1 = #05/06/2004#

Обратите внимание, что при присвоении значения даты/времени таким "явным" способом нам приходится использовать принятые в США стандарты: 05 в данном случае — это месяц, 06 — день. А отображение этого значения (например, в окне сообщения) будет зависеть от региональных настроек на компьютере пользователя;

  • если нужно передать шестнадцатеричное значение, то перед ним ставятся символы (&H):

nVar1 = &HFF00

Для передачи восьмеричного значения (что случается намного реже) нужно использовать набор символов (&O).

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 

 
© 2004-2016, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru