Asp справочник по vbscript


Урок 12 по VBScript: Строковые функции vbs

В этой статье рассмотрены строковые функции vbs сценариев, которые могут пригодиться при написании собственного текстового редактора или, просто, при работе со строковыми значениями и с символами. Для каждой функции я написал vbs сценарий, и дал ссылку на архив для скачивания.

Строковые функции vbs

Asc(str) – С помощью этой строковой функции vbs можно получить ASCII-код первого символа в строке str. Параметр str может быть пробелом или содержать только один символ.

Chr(code) – Данная vbs строковая функция позволяет получить символ, указав в качестве параметра его ASCII-код

InStr([start,] str1, str2 [, compare]) – позволяет определить позицию, с которой начинается искомая последовательность символов в заданной строчке.

Start – данный аргумент является числом, и задает позицию, начиная с которой надо начать поиск. Если аргумент отсутствует, то поиск производится с начала.
string1 – собственно, та строка, в которой надо произвести поиск.
string2 – тут мы задаем те символы, которые ищем.
compare – данный параметр может принимать значения vbBinaryCompare (учет регистра, значение 0) и vbTextCompare (без учета регистра, значение 1).

InStrRev(strl, str2[, start [, compare]] ) – Аналогично работе предыдущей строковой vbs функции, но поиск идет в обратном порядке.

Join(list[, delim]) – позволяет объединить все значения элементов массива в одну строку. Тут list – одномерный массив, а delim – необязательный параметр, который задает символ разделитель.

LCase(str) – Позволяет преобразовать все символы к нижнему регистру.

UCase(str) — Позволяет преобразовать все символы к верхнему регистру.

Left(str, len) – Вернёт заданное количество (len) знаков с начала строки str.

Right(str, len) — Вернёт заданное количество (len) знаков с конца строки str.

Len(str) – Использование этой строковой функции vbs позволяет определить количество знаков в str.

LTrim(str) — удаление пробелов в начале.

RTrim(str) — удаление пробелов в конце.

Trim(str) – удаление пробелов в начале и в конце.

Space(x) — Просто формирует строчку из пробелов количеством x.

String(number, char) – Формирование строчки, которая состоит из заданного количества (number) определенных символов (char).

Mid(str, start [, len]) – Формирование из строчки str подстрочки, которая будет начинаться с позиции start, параметр len позволяет указать длину. Строковые функции vbs.

Replace(str, find, replacewith [, start[, count[, compare]]]) – Позволяет производит замену в строке.

str – начальная строка.
find – подстрока, которую мы ищем.
replacewith – подставляемое значение.
start – начало поиска.
count – количество замен, по умолчанию стоит -1, что говорит о полной замене.
compare – параметр принимает значения vbBinaryCompare (учет регистра, значение 0) и vbTextCompare (без учета регистра, значение 1).

Split(str[, delim[, count[, compare]]]) – Производит парсинг строки на подстроки и заполняет ими возвращаемый массив.


str – строка для обработки.
delim – разделитель (по умолчанию — пробел).
count – количество, по умолчанию – значение -1 (все элементы).
compare — параметр принимает значения vbBinaryCompare (учет регистра, значение 0) и vbTextCompare (без учета регистра, значение 1).

StrComp(str1, str2[, compare]) – функция сравнения str1 строки и строки str2. Если они равны, возвращается 0, если str1 str2 – возвращается 1. Параметр compare принимает значения vbBinaryCompare (учет регистра, значение 0) и vbTextCompare (без учёта регистра, значение 1). Строковые функции vbs.

Благодарю всех за внимание, надеюсь, материал статьи был для вас полезным.

Спасибо за внимание. Автор блога Владимир Баталий

ASP на блюдечке. Часть 2

Загрузка файлов с помощью ASP и VBScript

Неужели нельзя обойтись без ActiveX-компонента? Конечно, можно. Давайте рассмотрим, каким образом можно загрузить на сервер, например, файл с иллюстрацией без использования встраиваемого компонента. Попробуем обойтись исключительно средствами ASP. Разумеется, время выполнения операции существенно увеличится, однако в нашем случае (при загрузке всего одного или двух файлов) это будет почти не ощутимо.

Проблема заключается в том, что, как правило, компоненты, предоставляемые «третьими» фирмами, не являются частью самого ASP, а представляют собой так называемые черные ящики, настроить которые под конкретные нужды невозможно. Будучи «третьими» компонентами, они должны устанавливаться на серверы, а это, в свою очередь, означает, что понадобится скопировать файлы компонентов (DLL или OCX) на сервер и зарегистрировать их. Какие проблемы? Никаких, если вы сами осуществляете хостинг вашего сайта. Однако если этим занимается какая-нибудь другая компания, то могут возникнуть проблемы с размещением и (или) регистрацией компонентов на сервере, обслуживающем ваш сайт.

Для того чтобы понять, как работает upload-скрипт, для начала посмотрим, каким образом посылаются данные из окна нашего браузера серверу с помощью протокола HTTP, то есть поймем, как работает «multipart/form-data».

Форма загрузки

Давайте разберемся в механизмах обработки HTML-форм более подробно. Итак, атрибут формы enctype определяет тип содержимого, используемый для кодирования множества элементов (полей) формы с целью их последующей отправки на сервер. Атрибут enctype, используемый по умолчанию, равен «application/x-www-form-urlencoded». Для передачи больших объемов данных, таких как файлы и (или) двоичные данные, используется значение атрибута «multipart/form-data».

Сообщение типа «multipart/form-data» содержит последовательности, каждая из которых представлена блоками, каждый из которых, в свою очередь, содержит следующие обязательные поля:

  • заголовок content-disposition, значение которого равно «form-data», — определяет тип пришедших на сервер данных;
  • имя атрибута — определяет имя элемента формы.

Для файлов этот набор выглядит несколько иначе:

  • заголовок content-type посылаемых двоичных данных;
  • атрибут с именем файла и полным путем к нему на компьютере клиента.

Рассмотрим простой пример HTML:

По нажатии кнопки «SubmitQuery» в этом окошке на сервер придет следующий запрос:

Эти данные могут быть отображены, если их послать клиенту в качестве ответа на запрос. Двоичные данные должны считываться с помощью ASP-функции Request.binaryRead, а записываться с помощью Response.binaryWrite:

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

Для каждого блока (поля, элемента формы) имеется одно значение content-disposition. Атрибут name указывает, к какому именно элементу формы относится тот или иной блок (в нашем случае e-mail, blob или Enter). Для элемента формы файла (в нашем случае blob) имя файла также является частью заголовка content-disposition, а заголовок content-type определяет тип данных.

Скрипт-загрузчик


Очевидно, что все содержимое HTTP-запроса должно быть «разобрано» по частям, рассмотрено и обработано нашим скриптом. В таких языках, как VB или C++, это весьма тривиальная задача, так как для этого предусмотрено множество объектов и методов. Применяя VBScript, сделать это не так просто, но все же возможно.

Поскольку посылаемые данные представлены в двоичном формате, мы будем вынуждены пользоваться для работы с ними соответствующими функциями языка VBScript. Логично предположить, что эти данные представляют собой последовательности байтов и такие функции, как MidB, InstrB и LenB, — именно то, что нам нужно. Мы также должны избегать использования классических строк в VBScript потому, что они представляются в формате Unicode и не подходят для передачи одиночных байтов. Это единственные функции VBScript, предназначенные для операций с байтами. Нам же нужен метод, позволяющий получать unicode-строку из «разбираемых» данных, с тем чтобы в дальнейшем использовать ее в VBScript-коде. И еще нам потребуется функция — преобразователь Unicode-строки в байт-строку, с тем чтобы использовать эту строку в качестве аргумента функции InstrB.

Определим объект «UploadRequest». Он содержит все поля нашей формы и выглядит следующим образом:

Такой «объектный» подход к организации позволит в дальнейшем упростить доступ к обрабатываемым данным.

Для начала надо найти границу байта, которая позволит определить, где заканчивается цикл по каждому полю (элементу формы).

Проблема в том, что, как было уже отмечено, функция InstrB требует строки байтов, в то время как мы располагаем Unicode-строками. Функция getByteString (String) позволит нам преобразовать unicode-строку в строку байтов. Теперь в цикле найдем конец последовательности:

Для каждого шага в цикле мы будем обрабатывать одно поле. Все данные, относящиеся к этому полю, будем сохранять в объекте типа Dictionary, и, таким образом, для каждого элемента формы будет порождаться новый объект UploadControl.

Сначала мы получим имя поля из заголовка «content-disposition». В конце имени располагается символ chr(34). Этим мы и будем руководствоваться для определения конца.

Далее необходимо проверить, является поле элементом типа «файл» или элементом типа «текст». Если это элемент типа «текст», никаких данных, кроме имени поля, нам не потребуется, а если это элемент типа «файл», то нам понадобятся имя файла и заголовок content-type.

Если это файл, то добавим имя и путь к файлу в объект dictionary. Имя файла есть строка символов, которую необходимо преобразовать в формат unicode. Сделать это можно при помощи функции getString().

А вот теперь можно получить содержимое файла, которое нет необходимости преобразовывать, поскольку это двоичные данные. Попросту необходимо сохранить в файловой системе на сервере или разместить в базе данных как объект типа blob (binary long object).

Если же это не тип «текст», необходимо преобразовать содержимое в строку Unicode для дальнейшего использования в VBScript.

Содержимое также добавляется к объекту dictionary.

В конце концов объект dictionary должен быть добавлен к глобальному объекту dictionary всей формы.

Функция преобразования однобайтовых строк в двухбайтовые (формата Unicode).

Функция преобразования строки в строку байтов (используется для форматирования аргументов для функции InstrB).

Вызов скрипта загрузки

Извлечение данных формы

Загруженные таким образом данные можно, к примеру, переслать обратно клиенту:

Двоичные данные можно таким же образом переслать обратно клиенту. Для этого можно использовать метод BinaryWrite:

Илон Маск рекомендует:  Что такое код swfshape >drawcurveto

Однако, как правило, в случае если объект представляет собой файл, необходимо записать данные на жесткий диск в виде файла или записи в базе данных. С этой целью мы воспользуемся объектом FileSystem.

Каталог, в котором мы собираемся сохранить наш файл, может быть указан несколькими способами: абсолютным, а также относительно каталога, зарегистрированного на сервере в качестве корневого каталога Web-сайта (для IIS это каталог C:\InetPub\wwwroot\ по умолчанию). Получить этот «виртуальный» каталог можно при помощи серверной переменной «PATH_INFO».

Метод «Write», с помощью которого и будет осуществляться запись в файл, требует ввода unicode-строки в качестве аргумента, и нам потребуется преобразовать массив байтов в unicode-строку. Метод Write преобразовывает эту Unicode-строку и записывает ее в формате ASCII. Таким образом и формируется файл, содержащий двоичный образ нашей входной строки байтов:


Таким образом, окончательная версия обработчика нашей формы в случае применения только ASP и VBScript-функций (файл Upload2DBE.asp) для загрузки файла будет выглядеть следующим образом:

А теперь давайте попробуем сами разработать ActiveX-компонент…

Согласитесь, что было бы неплохо самим научиться создавать ActiveX-компоненты для ASP. Тем, кто активно программирует, освоить это будет очень несложно, тем более что для этого подходят почти все современные средства разработки. Мы будем рассматривать способы создания ActiveX-компонентов для ASP как на Microsoft Visual Basic 6.0 — для неискушенных в области классического программирования, так и в Microsoft Visual C++ 6.0 — для тех, кто знаком с языком программирования C++ и кому он ближе и понятнее.

…с помощью Microsoft Visual Basic 6.0

Для начала попробуем создать активный серверный компонент для загрузки файла на сервер с помощью Microsoft Visual Basic 6.0. Для простоты рассматрим простейший пример HTML-формы загрузки файла (файл OCUpload.htm).

Данная форма предназначена для загрузки на сервер единственного файла. Определим также скрипт-реакцию на эту форму: ACTION=»UploadReceive.asp»

Соответственно вызов активного серверного компонента из ASP-скрипта (файл UploadReceive.asp) будет выглядеть следующим образом:

Функцией компонента, который мы собираемся создавать, будут являться разбор HTTP-заголовка получения для имени файла и сохранение файла на сервере в определенном каталоге. Для этого выполним следующую последовательность операций:

  1. Запустим Microsoft Visual Basic 6.0;
  2. В появившемся диалоговом окне выберем «ActiveX DLL»;
  3. Нажмем на «Open»;
  4. В окне инспектора проекта, выделив имя проекта, нажмем правую кнопку мыши и выберем пункт «Project1 Properties»;
  5. Поменяем имя проекта на «UploadProject» и нажмем на «ОК»;
  6. Выбрав класс «Class1», в окошке пониже перепечатаем имя класса с «Class1» на «UploadClass»;
  7. После открытия проекта войдем в пункт меню Project -> References;
  8. Установим флажок напротив пункта «Microsoft Active Server Pages Object Library»;
  9. Нажмем на «OK»;
  10. В окне кода класса впечатать функцию «DoUpload».

Как и у любого компонента, используемого в ASP, необходимо определить контекстные объекты скрипта, которые мы собираемся использовать в нашем проекте. Мы «перехватим» объекты в функции «OnStartPage». А поскольку нам понадобится лишь ASP-метод «Request», то это единственный контекстный объект, который мы сделаем доступным. Так выглядит код определения контекста процедуры загрузки, которую мы будем создавать:

Таким образом, мы можем использовать объектную переменную «MyRequest» точно так же, как если бы мы использовали любой Request-объект в ASP-файле. В нашем случае мы применяем ASP-файл (UploadReceive.asp) для управления ActiveX-компонентом. Для того чтобы использовать любой ASP-объект и его свойства в коде, мы должны передавать ASP-объект нашему компоненту вышеприведенным фрагментом кода. Мы будем использовать лишь два Request-метода ASP: «TotalBytes» и «BinaryRead».

Однако следует учитывать одно важное ограничение. Так как мы будем считывать данные (содержимое) файла при помощи функции «BinaryRead», то не следует забывать, что в этом случае использовать метод «Request.Form» нельзя. Иначе говоря, мы можем получить данные о нашем файле исключительно с помощью функции «BinaryRead». Однако, как будет показано ниже, это не создаст видимых трудностей при считывании имени или других атрибутов.

Как уже отмечалось выше, заголовок HTTP, посылаемый «multipart/form-data»-формой, включает в себя блоки, содержащие данные элементов формы. Мы будем извлекать первую часть заголовка HTTP (первый его блок), так как в нашем случае поле типа «файл» расположено в форме первым. Далее мы считаем его в строку, откуда извлечем имя файла, используя для этого VB-функцию «InStr» и цикл. Извлечь содержимое файла (сами данные) гораздо проще.

Теперь подошло время создания главной процедуры загрузки файла — «DoUpload». Объявим публичную функцию:

Public Sub DoUpload()

Прежде всего нам предстоит определить количество посланных клиентом байтов. А поскольку переменная «TotalBytes» есть константа, то мы присвоим ее значение объявленной нами переменной «varByteCount».

Теперь можно заняться и «сбором» данных, считывать которые посредством вызова функции «BinaryRead» мы будем в массив типа «Byte», а извлеченные данные помещать в массив «binArray». Размерности массива «binArray» мы переопределим в соответствии с размерностью наших данных следующим образом:

Итак, нам удалось вычленить данные из HTTP-заголовка. Теперь попробуем извлечь из полученных данных имя посланного нам клиентом файла. Для этого необходимо «разобрать» полученную строку байтов стандартными функциями операций со строками.

Заголовок HTTP располагается в самом начале нашего массива байтов. Цикл «Do Until» просматривает этот массив до тех пор, пока не обнаружит два последовательно идущих символа перевода строки, которые и обозначают конец блока параметров и одновременно начало данных файла. Каждый повтор цикла добавляет к строке «strHeadData» один байт. По окончании цикла мы получим пару <имя_элемента, значение_элемента>в отдельной строке «strHeadData». Эта пара может выглядеть следующим образом:

Сам процесс «извлечения» имени файла реализуем в несколько шагов следующим образом:

Найдя в ней значение «filename=», увеличим значение указателя на 10, таким образом переместившись в необходимую нам позицию. Сейчас мы находимся на позиции начала имени файла в строке.

Для того чтобы найти символ конца имени файла в строке, поищем первый символ «CR LF» с помощью функции «intFileTagStart»:


Совсем неплохо было бы выяснить, ввел ли пользователь значение. Конечно, это следовало сделать гораздо раньше, и не в ActiveX-модуле, а средствами VBScript, или JavaScript непосредственно в модуле формы (как это было показано ранее), или, на худой конец, с помощью самого ASP, но все-таки настоятельно рекомендую писать код активных серверных компонентов таким образом, чтобы обеспечить независимость от тех, кто в дальнейшем будет их использовать, то есть обеспечить универсальность и защиту «от дурака»:

Далее нам понадобится извлечь имя файла из полного его пути, с тем чтобы сохранить файл в файловой системе на сервере под оригинальным именем.

Переместимся на следующий разделитель (то есть на конец текущего блока)

и сохраним данные в файле в корневом (или любом другом) каталоге на жестком диске «C:».

Полный файл-архив проекта с рассмотренным примером можно найти на нашем CD-ROM.

… с помощью Microsoft Visual C++ 6.0

А зачем, собственно, нужен C++? Ведь, в конце концов, Visual Basic намного проще, и процесс создания COM-компонентов с его помощью занимает гораздо меньше времени. Занимаясь разработкой чего бы-то ни было на C++, мы увеличиваем как стоимость, так и время разработки. К сожалению, это мнение в последнее время высказывается все чаще. Однако не следует забывать, что, несмотря на все эти казалось бы резонные доводы, среди всевозможных языков программирования и описания сценариев (VB, Java, ASP и так далее) C++ остается чемпионом по скорости выполнения и эффективности кода. И хотя выигрыш этот кажется невеликим при сравнении компонента для одного клиента, в реальной Web-обстановке, когда клиентов сотни, а порой даже тысячи и сотни тысяч и вычислительная нагрузка на серверы растет в геометрической прогрессии, этот выигрыш колоссален. Пара строк ASP-кода, обрабатывающая длинные строки символов, выглядит великолепно на сервере с небольшим числом клиентов, но может «поставить на колени» сервер с множеством клиентов.

Отсюда мораль: самые «узкие» места целесообразно разрабатывать на каком-нибудь языке программирования вроде C++, а ASP использовать в качестве «клея» между быстро работающими ActiveX-компонентами, созданными с его помощью. Но хватит слов, давайте перейдем к делу. Для того чтобы посвятить читателя в азы разработки ActiveX-компонента и его применения в нашем газетном сайте, предусмотрим следующую функцию.

Пусть у пользователя будет возможность просматривать содержимое каталога «C:\InetPub\wwwroot\Articles», то есть список всех файлов этой папки на сервере, причем с возможностью просмотра каждого файла в отдельности. Первое, что приходит в голову в этом случае, это страница, формируемая с помощью ActiveX-компонента, возвращающего список файлов заданного каталога. Сформируем этот компонент прямо сейчас, используя Microsoft Visual C++ 6.0.

Итак, надеюсь, вы уже запустили MSVC. Для начала создайте новый проект, в появившемся диалоговом окне укажите его тип («ATL Com AppWizard») и задайте имя. Назовем его «Dir» — в честь популярной команды MS-DOS.

Далее необходимо уточнить формат разрабатываемого компонента, а именно динамически подключаемой библиотеки в следующем диалоговом окне.

Как вы, наверное, заметили, во втором диалоге MSVC предупреждает о том, что мастер создает лишь ATL-проект и что по завершении его работы понадобится вручную создавать COM-объект в его составе. А сделать это можно следующим образом.

После выбора в появившемся меню строки «New ATL Object…» появится диалоговое окно, в котором необходимо будет уточнить тип создаваемого ActiveX-объекта, а именно активный серверный компонент («ActiveX Server Component»).

Теперь необходимо определить имена создаваемого класса и исходных файлов. Пусть наш класс называется «FilesList». Если вы введете это имя в соответствующем поле следующего диалога, то увидите следующее окно.

Следует уделить внимание двум другим вкладкам этого диалога: «Attributes» и «ASP». Перейдя во вкладку «Attributes», можно, в частности, определить поточную модель разрабатываемого COM-компонента. Вкладка «ASP» позволяет определить, какие объекты самого ASP будут доступны из разрабатываемого компонента, то есть указатели, на какие объекты ASP будут создаваться в реализации (implementation) самого компонента.

Следует также заметить, что конструирование указателей на внутренние (Intrinsic) объекты ASP производится в конструкторе компонента OnStartPage (не путать с одноименной функцией файла Global.asa), деструктурирование — в деструкторе OnEndPage, без применения которых доступ к внутренним объектам ASP будет закрыт, поэтому галочка в поле OnStartPage/OnEndPage должна быть выставлена. Реально в разрабатываемом компоненте нам необходим лишь объект ASP «Response», однако в целях обучения выделим все объекты. После всех проделанных операций рекомендую сохранить проект.

Как видно, MSVC создал функции OnStartPage и OnEndPage в IfilesList в нашем объекте CfilesList. Посмотрим полученный код:

Далее необходимо добавить функцию, которая и будет выполнять необходимые нам действия. Напишем ее:

Не забудьте прописать заголовок нашей новой функции WriteDir в файле FilesList.h в разделе Active Server Pages Methods public сразу за объявлениями функций OnStartPage и OnEndPage:

Илон Маск рекомендует:  Атрибут autocomplete в HTML

Кроме того, мы использовали функции «_findfirst» и «_findnext», а также структуру, которую они заполняют. Все эти компоненты объявлены вo включаемом файле «io.h», поэтому не забудьте включить и его, что удобно сделать в файле «StdAfx.h».

После всех действий нажмите на клавишу F7, и если вы все сделали правильно, то MSVC построит вашу библиотеку и зарегистрирует ее в системе. Самим же это можно сделать, выполнив команду:

Итак, нам осталась самая малость. Написать ASP-скрипт, который, используя функцию «WriteDir», выведет в окне клиента список всех файлов каталога с погруженными статьями и иллюстрациями к ним нашего газетного сайта со ссылками на них (файл Dir.asp):

Страничка — результат выполнения данного скрипта — будет выглядеть следующим образом.


Полный файл-архив проекта с рассмотренным примером находится на нашем CD-ROM.

Еще несколько слов в защиту C++

Компилируемые языки программирования, такие как Visual C++, Borland C++ или Delphi, используют исходный текст для генерации машинного кода (набора машинных команд). В результате формируется набор инструкций, к которым вычислительная машина может обращаться напрямую (отсутствует необходимость в использовании каких бы то ни было препроцессоров, «до-компиляторов» и так далее) и которые поэтому выполняются очень быстро.

Интерпретируемые языки программирования, такие как Visual Basic и J++, в техническом смысле не компилируются. Конечно, в результате компиляции получается выполняемый модуль или библиотека, но это не машинный код. Вместо него, попросту говоря, используется объектный код, который интерпретируется в машинный во время выполнения самой команды, что, безусловно, требует большей вычислительной мощности от процессора.

Кроме «скоростного» фактора нельзя забывать об уникальных возможностях, предоставляемых такими языками, как C++ и Pascal (Delphi). Они, как никакие другие, активно используют объектно-ориентированные концепции в программировании (технологии OOP и OOD), которые позволяют не терять контроль над кодом при разработке больших проектов и осуществлять переносимость целых классов функций. Конечно, с точки зрения новичка все это может показаться сложным и недоступным, но, поверьте, это не так.

Ничего не имея против использования Visual Basic для обучения, разрабатывать COM-объекты, встраиваемые в ASP-страницы, с его помощью я все же не советую.

Заключение

Хотелось бы сориентировать разработчиков ASP-страниц в мире ASP-компонентов. Дело в том, что автор настоящей статьи провел не один день, сидя за Интернетом в поисках всевозможных ASP-компонентов для решения всевозможных задач.

AspUpload 2.0 Copyright — загрузка файлов на сервер в online-режиме — (c) 1998-2000 Persist Software, Inc. (http://www.persits.com). Временная одномесячная версия лежит на нашем CD-ROM.

XUpload 2.0 Copyright — загрузка каталогов на сервер в online-режиме с поддержкой множества интересных функций (drag-and-drop и т.п.) — (c) 1998-2000 Persist Software, Inc. (http://www.persits.com). Временная версия лежит на нашем CD-ROM.

ASP E-mail 4.4 — довольно полезный компонент для работы с электронной почтой лежит на нашем CD-ROM.

Желающим скачать множество полезных активных серверных компонентов для их использования в ASP советую посетить:

Программирование для ADO на VBScript VBScript ADO programming

Область применения: Access 2013, Office 2013 Applies to: Access 2013, Office 2013

Создание проекта ADO Creating an ADO Project

Microsoft Visual Basic, Scripting Edition не поддерживает библиотеки типов, поэтому вам не нужно ссылаться на ADO в проекте. Microsoft Visual Basic, Scripting Edition does not support type libraries, so you do not need to reference ADO in your project. Следовательно, не поддерживаются связанные функции, такие как завершение командной строки. Consequently, no associated features such as command line completion are supported. Кроме того, по умолчанию перечислимые константы ADO не определяются в VBScript. Also, by default, ADO enumerated constants are not defined in VBScript.

Однако ADO предоставляет два включаемых файла, содержащие следующие определения для использования с VBScript: However, ADO provides you with two include files containing the following definitions to be used with VBScript:

Для серверного скрипта используйте Адовбс. Inc, установленный\в\\\\ папке «общие файлы» системы c: Program Files по умолчанию. For server-side scripting use Adovbs.inc, which is installed in the c:\Program Files\Common Files\System\ado\ folder by default.

Для клиентских скриптов используйте Адквбс. Inc, установленный в папке\c: Program Files\\System\мсдак\ по умолчанию. For client-side scripting use Adcvbs.inc, which is installed in the c:\Program Files\Common Files\System\msdac\ folder by default.

Вы можете копировать и вставлять определения констант из этих файлов на страницы ASP или, если вы выполняете сценарии на стороне сервера, скопируйте файл Адовбс. Inc в папку на веб-сайте и сослаться на нее со страницы ASP следующим образом: You can either copy and paste constant definitions from these files into your ASP pages, or, if you are doing server-side scripting, copy Adovbs.inc file to a folder on your website and referencing it from your ASP page like this:

Создание объектов ADO в VBScript Creating ADO Objects in VBScript

Оператор Dim нельзя использовать для назначения объектов определенному типу в VBScript. You cannot use the Dim statement to assign objects to a specific type in VBScript. Кроме того, VBScript не поддерживает Новый синтаксис, используемый с оператором Dim в Visual Basic для приложений. Also, VBScript does not support the New syntax used with the Dim statement in Visual Basic for Applications. Вместо этого необходимо использовать вызов функции CreateObject : You must instead use the CreateObject function call:


Примеры VBScript VBScript Examples

Приведенный ниже код представляет собой общий пример программирования на стороне сервера VBScript в файле страницы ASP: The following code is a generic example of VBScript server-side programming in an Active Server Page (ASP) file:

Более конкретные примеры VBScript включены в документацию по ADO. More specific VBScript examples are included with the ADO documentation. Для получения дополнительных сведений см. примеры кода ADO в Microsoft Visual Basic scriptIng Edition. For more information, see ADO code examples in Microsoft Visual Basic Scripting Edition.

Различия между VBScript и Visual Basic Differences Between VBScript and Visual Basic

Использование ADO с VBScript аналогично использованию ADO с Visual Basic множеством способов, в том числе с использованием синтаксиса. Using ADO with VBScript is similar to using ADO with Visual Basic in many ways, including how syntax is used. Однако существуют некоторые существенные отличия. However, some significant differences exist:

VBScript поддерживает только тип данных Variant, который может содержать различные типы данных. VBScript supports only the Variant data type, which can hold different types of data. Вы можете хранить нужные данные в типе данных Variant, и данные будут работать надлежащим образом из-за приведения, выполняемой с помощью VBScript. You can store the data you need in a Variant data type, and the data will function appropriately due to casting performed by VBScript. Он распознает тип, необходимый для ADO, и преобразует значение в соответствующем варианте. It recognizes the type required by ADO, and converts the value in the Variant accordingly.

Нельзя использовать on error goto в VBScript. You cannot use on error goto within VBScript.

VBScript поддерживает некоторые встроенные функции Visual Basic, такие как MsgBox, Dateи ISNUMERIC. VBScript supports some of the built-in Visual Basic functions such as Msgbox, Date, and IsNumeric. Однако так как VBScript является подмножеством Visual Basic, поддерживаются не все встроенные функции. However, because VBScript is a subset of Visual Basic, not all built-in functions are supported. Например, сценарий VBScript не поддерживает функцию Format и функции файлового ввода-вывода. For example, VBScript does not support the Format function and the file I/O functions.

Asp справочник по vbscript

Теперь разберём эту «головоломку» по частям.

Первые три строки — это комментарии. Они не как не влияют на работу сценария. Что бы оставлять комментарии используется ключевое слово «Rem» или единичная клавиша . Комментарии можно оставлять в любом месте кода, но надо учитывать, что после объявления комментария всё содержимое строки, которое идёт дальше, учитываться не будет.

На пятой строке перечислены все переменные, которые мы с вами будем использовать (a, b, c, d). Они бывают явными и не явными, но об это я расскажу попозже. Переменные объявляются ключевым словом «Dim».

С седьмой по десятую строку мы назначаем значение переменных. В данном случае это три числа и строка (10, 20, 40, «пробная срока»). Прошу обратить внимание, что все строки заключаются в ковычки.

На двенадцатой строке мы выводим значение всех переменных при помощи функции MsgBox. В данном примере у нас вылезет окошко с числом 10, а после нажатия кнопки «ОК» вылезет окошко с числом 20 и т.д. .

На мой взгляд, всё понятно, но мне не нравится чересчур большое количество строк. Давайте сократим код. Заодно я расскажу Вам про не явные переменные.

Asp справочник по vbscript

Visual Basic: Полезные советы
Здесь всё, что мне когда-нибудь помогло и я хотел бы этим поделиться с другими, а также полезные советы других пользователей.

Visual Basic Script — основы программирования
Я не ошибусь, если назову Бейсик (BASIC — Begginners Allpurpose Symbolic Instruction Code, т.е символический командный универсальный код для начинающего :) самым простым языком программирования. Даже при небольшом опыте, программы можно писать практически не задумываясь

Как скриптуются приложения
Николай Куртов
Взгляд изнутри на внутреннюю автоматизацию программ или «как нынче модно VBScript прикручивать»

Как в Visual Basic 6.0 работать с реестром на удалённом компьютере
В этой статье объясняется, как в приложении Visual Basic получить доступ к реестру на удалённой машине с использованием API функций. Данная технология работает в операционных системах Windows XP, Windows 2000, или Windows NT 4.0.

Процедуры
Процедуры — это относительно самостоятельные фрагменты программы, оформленные особым образом и обозначенные именами. Упоминание этих имен в тексте программы называется вызовами процедур.

Вызов методов
Чтобы вызвать подпрограмму из вашего сценария, используйте следующий синтаксис.

Обработка событий
VBScript — событийно-ориентированный язык. Некоторые события, перечисленные в табл. 3, работают со многими элементами управления. Существует несколько методов определения того, что должно происходить в сценарии при возникновении события. Можно определить событие как параметр тега для объекта на странице. Значением этого атрибута должно быть имя процедуры, которую нужно заранее определить внутри тега. Если надо использовать определенную процедуру, то параметр LANGUAGE тега


Объектная модель Internet Explorer 3.0
Все объекты являются дочерними от объекта Window. Объект Window содержит несколько методов, свойств и событий.

Илон Маск рекомендует:  Необходимый урок Как вставить формулы в Word

Объект
Объект (Object) — это простой объект, методами, свойствами и событиями которого вы можете управлять. Метод — это процедура или просто набор команд, сообщающих объекту, что нужно выполнить некоторую задачу. Свойство — это некоторый вид параметра объекта.

Создание скриптов
Для того чтобы браузер мог различать команды VBScript, нужно все операторы VBScript на HTML-страницах обрамлять тегами

Установка свойств для элементов управления и объектов
Установка свойств для разных объектов на странице является одной из простейших задач при программировании на VBScript. Стандартная схема этого действия выглядит так.

Константы функции операции команды в VBS
Константы функции операции команды в VBS, Функции работы с датой и временем. Функции работы со строками. Функции работы с числами, арифметические операции, операция присваивания, операции сравнения

Книги для изучения классического asp, vbscript

Мне, возможно, придется внести вклад в унаследованную систему, классический asp с веб-приложением vbscript на работе.

Какие хорошие учебные учебники/книги по этому поводу.

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

Я не забуду старый добрый ASP для чайников, читайте его каждый день около месяца и наслаждайтесь каждой страницей. Ясно, просто и точно.:)

Я бы рекомендовал эту книгу, я использовал ее как ежедневную ссылку, когда начал изучать классический asp, в значительной степени, как и я, у меня не было возможности использовать dot net.

ASP Programming — VBScript

As was mentioned in the last lesson, ASP uses VBScript as its default scripting language. VBScript is similar to Javascript, a client side programming language used to add functionality through the Advertise on Tizag.com

Read the following paragraph carefully!

VBScript, when used to program ASP converts it to server side scripting. Any given web page could be created from a combination of server side and client side scripting. The confusing part is this: You must use these client side scripting languages (Javascript, VBScript, etc) to program in ASP!

Below we have a simple ASP script programmed in VBScript and includes the necessary HTML as well. This is only server-side scripting.

Server Side ASP Code using VBScript:

Display:

If you already know VBScript or Visual Basic programming then you’ll recognize Dim as Dimension, which is used to «dimension» variables. It is a good programming practice to «dimension» all your variables before you use them, as we did with myString in the above example.

Now that we have our ASP Code working, say that we wanted to use our ASP code along with some client side Javascript code. To keep it simple we are just going to use the Javascript write function and have our ASP Code fill in the Date. All the Javascript client code is in the default color, but ASP Server Side Code is in Red.

ASP Code with VBScript and Client Side Javascript Code:

Display:

If you just want to program in ASP you can disregard the above example if you find it confusing. Just remember that you can have client-side Javascript code and server-side ASP/VBScript code included in an ASP generated web page!


Programming ASP with VBScript

You should be able to follow along with our ASP tutorial with little or no VBScript knowledge, but just in case you want to know more or find some of the VBScript syntax or code confusing then you can check out our VBScript Tutorial.

Found Something Wrong in this Lesson?

Report a Bug or Comment on This Lesson — Your input is what keeps Tizag improving with time!

Введение в ASP:

Response.ContentType =»text/html» — задаёт mime-тип содержимого, текущей страницы.
Response.Cookies(имя)(ключ) =значение — записывает значения cookies.
Response.Expires =время — Устанавливает промежуток времени, по истечении которого, страница в кэше считается устаревшей. При время=0 страница устаревает при получении.
Response.ExpiresAbsolute =#дата# — Учтанавливает дату, после которой страница считает устаревшей.
Response.Status = «404- Not Found» — Задаё строку состояния, передаваемую броузеру. Используется для передачи диагностических сообщений.
Response.AddHeader имя, значение — Позволяет добавить к Web-странице пользовательский заголовок.
Response.AppendToLog строка — Добавляет информацию в запись в журнале Web-сервера, относящуюся к данной передаче страницы.
Response.BinaryWrite данные — Записывает в страницу двоичные данные для использования клиентскими объектами.
Response.Clear — Очищает буфер вывода ASP-страницы
Response.End — Прекращает обработку сценария и отсылает страницу клиенту
Response.Flush — Очищает буфер и отсылает его содержимое клиенту
Response.Redirect URL — Перенаправляет броузер по указанному URL.
Response.Write данные — записывает текстовые данные в буфер HTML-страницы. Эту команду можно заменить знаком равенства.

Request.ClientCertificate (переменная) — Набор значений сертификата клиента.
Request.Cookies (переменная)-набор Cookies, переданных в заголовке HTTP клиентом.
Request.Form (имяПоля) — набор данных передаваемых серверу в форме. (методы GET и POST).
Request.QueryString (имяПоля) — набор данных преданных клиентом в гиперссылке.
Request.ServerVariables (переменная) — набор переменных сервера, полученных от клиента.

Объекты Request и Response осуществляют взаимодействие ASP страницы с клиентом, запрос и ответ соответственно.

Этот объект позволяет сценарию обращаться к серверу.
Естественно, все установки можно менять только, если Вы имеете доступ к ним.
Server.ScriptTimeOut=время -свойство устанавливает время, которое даётся сценарию на исполнение. По истечению этого времени клиент получает сообщение об ошибке.
Set Переменная=Server.CreateObject(objID) -создаёт ActiveX объект. К примеру:
Set FSO=Server.CreateObject(«Scripting.FileSystemObject»).
Server.MapPath(виртуальный путь) -возвращает полный путь, соответсвующий виртуальному.
Server.HTMLEncode(строка) -Кодирует строку в соответствии с требованиями HTML:

.
Server.URLEncode(строка) — Кодирует строку, по правилам создания URL. «text text»=»text+text».

Объекты Application и Session позволяют запоминать значения некоторых параметров, между вызовами разных сценариев. Если Вы находитесь, на беплатном ASP-хостинге, скорее всего, эти объекты будут Вам недоступны.
Сами по себе Application и Session — это наборы переменных, с дополнительными методами. так называемые глобальные переменные.

Application -Объект обозначает текущее приложение. Вызов переменных осуществляется Application(«имяПеременной») . Так как существует возможность одновременного доступа к одной и той же переменной, используется код.

Session -объект обозначающий текущую сессию.

2. Язык программирования VBScript и программная логика скриптов

2.1 Основы синтаксиса

Синтаксис VBScript, документация по VBScript, отличия VBScript от Visual Basic

VBScript является подмножеством языка Microsoft Visual Basic for Applications (сокращенно – VBA ), поставляемого с Microsoft Office и Visual Basic . Документация — не в MSDN , а нужно скачивать отдельно с Web -сайта Microsoft в виде файла vbsdoc.exe (была установлена на предыдущей лабораторной). Основные синтаксические принципы VBScript как языка программирования:

o VBScript нечувствителен к регистру;

o чтобы закомментировать код до конца строки, используется одинарная кавычка (‘) или команда REM ;

o символьные значения должны заключаться в двойные кавычки;

o максимальная длина любого имени в VBScript (переменные, константы, процедуры) — 255 символов;

o начало нового оператора — перевод на новую строку (точка с запятой, как в C , Java , JavaScript для этого не используется);

o ограничений на максимальную длину строки нет. Несколько операторов в одной строке разделяются двоеточиями:


WScript . Echo «Проверка 1» : WScript . Echo «Проверка 2»

o для удобства чтения можно объединить несколько физических строк в одну логическую при помощи пробела:

WScript . Echo «Сообщение пользователю» _

o можно объявлять и использовать переменные только одного типа данных — Variant (об этом позже).

Для тех, кто работал с обычным Visual Basic , основные отличия VBScript от Visual Basic :

o VBScript — интерпретируемый язык (программы запускаются и работают медленнее, но вносить в них изменения намного удобнее);

o VBScript не требует, чтобы код скрипта был помещен внутрь блока Sub () или Function ();

o нет команды Debug . Print (вместо нее рекомендуется использовать WScript . Echo );

o в VBScript — большие ограничения при работе с библиотеками типов (не все типы данных поддерживаются, объектная модель должна соответствовать правилам Automation , константы без объявления их в теле скрипта использовать нельзя). Некоторые из этих ограничений можно обойти при помощи возможностей XML в файлах *. wsf .

Далее — самые важные моменты про основные элементы программ на VBScript.

Asp справочник по vbscript

Visual Basic: Полезные советы
Здесь всё, что мне когда-нибудь помогло и я хотел бы этим поделиться с другими, а также полезные советы других пользователей.

Visual Basic Script — основы программирования
Я не ошибусь, если назову Бейсик (BASIC — Begginners Allpurpose Symbolic Instruction Code, т.е символический командный универсальный код для начинающего :) самым простым языком программирования. Даже при небольшом опыте, программы можно писать практически не задумываясь

Как скриптуются приложения
Николай Куртов
Взгляд изнутри на внутреннюю автоматизацию программ или «как нынче модно VBScript прикручивать»

Как в Visual Basic 6.0 работать с реестром на удалённом компьютере
В этой статье объясняется, как в приложении Visual Basic получить доступ к реестру на удалённой машине с использованием API функций. Данная технология работает в операционных системах Windows XP, Windows 2000, или Windows NT 4.0.

Процедуры
Процедуры — это относительно самостоятельные фрагменты программы, оформленные особым образом и обозначенные именами. Упоминание этих имен в тексте программы называется вызовами процедур.

Вызов методов
Чтобы вызвать подпрограмму из вашего сценария, используйте следующий синтаксис.

Обработка событий
VBScript — событийно-ориентированный язык. Некоторые события, перечисленные в табл. 3, работают со многими элементами управления. Существует несколько методов определения того, что должно происходить в сценарии при возникновении события. Можно определить событие как параметр тега для объекта на странице. Значением этого атрибута должно быть имя процедуры, которую нужно заранее определить внутри тега. Если надо использовать определенную процедуру, то параметр LANGUAGE тега

Объектная модель Internet Explorer 3.0
Все объекты являются дочерними от объекта Window. Объект Window содержит несколько методов, свойств и событий.

Объект
Объект (Object) — это простой объект, методами, свойствами и событиями которого вы можете управлять. Метод — это процедура или просто набор команд, сообщающих объекту, что нужно выполнить некоторую задачу. Свойство — это некоторый вид параметра объекта.

Создание скриптов
Для того чтобы браузер мог различать команды VBScript, нужно все операторы VBScript на HTML-страницах обрамлять тегами

Установка свойств для элементов управления и объектов
Установка свойств для разных объектов на странице является одной из простейших задач при программировании на VBScript. Стандартная схема этого действия выглядит так.

Константы функции операции команды в VBS
Константы функции операции команды в VBS, Функции работы с датой и временем. Функции работы со строками. Функции работы с числами, арифметические операции, операция присваивания, операции сравнения

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL