Глава 21. Visual Basic и Интернет 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Глава 21. Visual Basic и Интернет



В этой главе мы рассмотрим, как знание Visual Basic поможет вам добавить в вашу Web-страничку такие элементы, которые подвластны только программистам. Вы обнаружите, что ваше знание не только полезно, но и опасно для окружающих. Эта глава дает понятие о работе с Web-страницей, но ни в коем случае не систематические знания в этой области. Основываясь на примерах, приведенных в главе, вы сможете легко сделать что-нибудь интересное на своей страничке. Однако, чтобы стать экспертом, читайте более толстые книжки.

Понятие об Интернет, Web-станицах и языке HTML

Интернет- это сто миллионов компьютеров на земном шаре, соединенные между собой телефонными линиями и другими каналами связи. Упрощенно структуру Интернет можно представить следующим образом. Забудем пока о миллионах. В мире существуют многие тысячи (не миллионы) мощных компьютеров, которые соединены между собой более-менее скоростными линиями связи и никогда не выключаются. Называют их узлами или Web-серверами. Они-то и составляют "спинной хребет" Интернета. Схема их соединения на карте Земли напоминает паутину дорог, соединяющих города. Города - узлы, дороги - линии связи, такая аналогия. Если вы хотите подключить ваш домашний компьютер к Интернет, то можете это сделать, только подключившись к какому-нибудь узлу, чаще всего ближайшему. Узлом (Web-сервером) владеет фирма, которая называется провайдером, она берет с вас деньги и разрешает подключаться к своему Web-серверу. Чаще всего это подключение идет по низкоскоростной телефонной линии. К этому же серверу подключены и тысячи других желающих из ваших мест. Вот таким образом и получается сеть из ста миллионов компьютеров.

Вы знаете, что для большинства владельцев компьютеров путешествие по Интернет - это бесконечное перелистывание огромного числа занимательных, полезных, скучных, грязных, глупых, добрых Web-страничек. Любая из этих страничек круглосуточно доступна каждому подключившемуся к Интернет. В настоящее время любой подключившийся к Интернет имеет также возможность простыми средствами создать свою собственную Web-страницу и сделать ее видимой в Интернет всему миру. Страничку вы не спеша создаете на своем компьютере, затем соединяетесь со своим (можно и с некоторыми другими) сервером и щелкнув несколько раз мышкой, помещаете ее на сервере. Иначе, если она будет помещена не на сервере, а на вашем компьютере, то когда ваш компьютер выключен, она никому не будет доступна. На жестком диске сервера ваша и тысячи других Web-страниц будут неограниченно долго храниться.

Итак, все странички в Интернет размещены на серверах.

 

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

Все вы видели Web-странички, они напоминают страницы красочных журналов, на них много текста на красочном фоне, есть фотографии, простейшая анимация. Тот, кто знаком с красочной графикой, знает, что она требует для своего представления большого объема информации. Такое количество слишком долго будет передаваться по линиям связи. Как же решается эта проблема? Приведу аналогию. Два художника живут в разных городах. Один звонит другому и говорит, что хочет посмотреть на его новую картину. Тому посылать картину по почте долго и дорого, поэтому вместо картины он присылает письмо такого содержания: "Возьми холст и краски. В нижнем левом углу холста нарисуй златокудрую нимфу, фотография которой вложена в письмо. В правом верхнем углу нарисуй грозовую тучу. …" И так далее. Первый художник, выполнив все, что сказано в письме, будет иметь перед собой картину, очень похожую на оригинал.

Итак, в Интернете по линиям связи передается не сама страница, а описание того, как ее рисовать, что и каким шрифтом писать плюс очень экономно закодированные фотографии с этой страницы и некоторые другие элементы. В вашем компьютере эту информацию поджидает программа, которая играет роль художника, рисующего картину по ее описанию в письме. Эта программа называется броузером. Броузер не только рисует на экране страничку по описанию, но и позволяет удобно листать странички и делать почти все, что нужно для работы в Интернет. В мире наиболее распространены два броузера: Internet Explorer и Netscape Navigator.

Описание Web-страницы выполняется на специальном языке, который называется HTML. Язык этот прост и понятие о нем дается в следующем разделе.

Создание Web-страницы

В этой главе мы с вами для примера будем создавать Web-страницус игрой "Угадай число". Начнем с малого. Пусть пока ваша страничка должна выглядеть так:

 

 

Для этого вам достаточно в Notepad (это "Блокнот" - простейший текстовый редактор Windows) создать документ такого содержания:

<html>

<body bgcolor="#FFDFFF">

<h1>Игра "Угадайте число"</h1>

<i>Если на угадывание числа вам удалось затратить меньше 30 попыток - вы хороший математик</i>

</html>

Пояснения:

· Любой документ на языке HTML должен начинаться с тега <html> и заканчиваться тегом </html>.

· Строка <body bgcolor="#FFDFFF"> приказывает броузеру задать цвет фона страницы в 16-й системе счисления (см. 9.6).

· Тег <h1> обозначает "самый крупный заголовок", поэтому на нашей страничке первая строка получилась крупным шрифтом. Тег <h2> означал бы заголовок поменьше и так далее. Вообще, в большинстве случаев теги встречаются парами - открывающий и закрывающий теги, причем закрывающий отличается от открывающего косой чертой. Пара тегов рассказывает броузеру о том, что нужно делать с элементом информации, который она охватывает.

· Тег <i> обозначает "курсив", поэтому на нашей страничке вторая строка получилась курсивом.

 

Этот HTML-документ и является описанием нашей Web-страницы. После создания HTML-документа его необходимо сохранить с расширением htm или html. Теперь, чтобы увидеть получившуюся Web-страничку живьем, вам достаточно открыть этот документ в броузере, имеющемся на вашем компьютере.

Вообще, для создания Web-страницы совсем не обязательно вручную создавать HTML-документ. Вы можете сконструировать Web-страничку в редакторе Microsoft Word или в специальной программе FrontPage Express, не написав ни одного тега, подобно тому, как в Visual Basic мы конструируем проект в режиме проектирования. HTML-документ при этом создается автоматически. Рассматривая страничку в броузере Internet Explorer, вы всегда можете увидеть и редактировать породивший его HTML-документ при помощи View®Source.

Я предлагаю вам такой порядок доработки Web-страницы. Вы дописываете в HTML-документ очередную строку, сохраняете его, затем в броузере нажимаете кнопку обновления страницы (Refresh). Страница приобретает вид в соответствии с последними изменениями в HTML-документе. Затем вы снова изменяете HTML-документ и так далее.

Сценарий на Web-странице

Итак, мы решили развлечь читателя нашей Web-страницы. Мы предложим ему поиграть на нашей странице в игру "Угадай число". Задание на создание такой игры в Visual Basic вы уже получали раньше (16.2). Напомню условие. Компьютер загадывает число из диапазона от 1 до миллиарда. Человек должен его отгадать. Причем за наименьшее число попыток. При каждой попытке компьютер выводит номер попытки и подсказку - " мало " или " много ". Сохраняться, как того требовало задание 127, мы для простоты не будем.

 

Сначала запрограммируем игру не на Web-странице, а как мы привыкли - в Visual Basic. Разместим на форме:

· Кнопку cmdTry с надписью "Попытка"

· Текстовое поле txtNumber - для того, чтобы человек вводил туда очередное число

· Текстовое поле txtMessage - для слов "Много", "Мало" и "Вы угадали"

· Текстовое поле txtNumberTry - для отображения количества попыток

 

Вот программа:

Dim A As Long 'это число - очередная попытка человека

Dim SecretNumber As Long 'это загаданное число

 

Private Sub Form_Load() 'Начальные установки:

Randomize

SecretNumber = Round(1000000000 * Rnd)

txtNumber. Text = 0

txtMessage. Text = "Попыток не было"

txtNumberTry. Text = 0

End Sub

'Процедура обработки нажатия на кнопку:

Sub cmdTry_ Click ()

A = Val (txtNumber. Text) 'превращение строки в число

If A > SecretNumber Then

txtMessage. Text = "Много"

ElseIf A < SecretNumber Then

txtMessage. Text = "Мало"

Else

txtMessage. Text = "Вы угадали"

End If

txtNumberTry. Text = txtNumberTry. Text + 1 'увеличиваем счетчик числа попыток

End Sub

Программа проста и не требует пояснений. Полужирным шрифтом я выделил фрагменты текста, которые подвергнутся изменениям при программировании для Web-страницы.

 

Теперь приступим к программированию нашей игры на Web-странице. Вот внешний вид страницы, который мы хотим получить:

 

 

Программа для этой игры должна быть включена в HTML-документ страницы. Там она будет называться сценарием. Пишется она не совсем на Visual Basic, а на так называемом языке VBScript. Это сильно упрощенный и немного измененный Visual Basic. Поэтому простой перенос в HTML-документ программы из Visual Basic не принесет успеха. Самое интересное то, что для программирования на VBScript вам совершенно не нужно иметь на компьютере Visual Basic. На том компьютере, где будет читаться ваша страница, он тоже не нужен. Необходимое условие одно - тот, кто будет читать вашу страницу, должен делать это при помощи броузера Internet Explorer. Не думаю, чтобы это было сильным ограничением, поскольку Windows включает в себя Internet Explorer. Во всяком случае, в России подавляющее большинство пользователей Windows используют именно этот броузер.

Internet Explorer в процессе рисования вашей страницы на экране читает ее HTML-документ и наткнувшись в его тексте на сценарий, выполняет его точно так же, как Visual Basic выполняет программу при нажатии на Start. Вот такой замечательный продукт этот Internet Explorer. Мастер на все руки.

Сценарий выполняется заново каждый раз, когда вы загружаете страницу в Internet Explorer.

 

Вот HTML-документ нашей страницы со включенным в него сценарием:

<html>

 

<body bgcolor="#FFDFFF">

<h1>Игра "Угадайте число"</h1>

Введите в текстовое поле <input type="text" size="20" name="txtNumber">

число от 1 до миллиарда и нажмите кнопку "Попытка"<p>

<input type="button" name="cmdTry" value="Попытка"><p>

Результат попытки - <input type="text" size="30" name="txtMessage"><p>

Номер попытки - <input type="text" size="10" name="txtNumberTry" ><p>

<i>Если на угадывание числа вам удалось затратить меньше 30 попыток - вы хороший математик</i>

 

<script language="VBScript"><!-- 'СЦЕНАРИЙ

dim A 'это число - очередная попытка человека

dim SecretNumber 'это загаданное число

 

Randomize

SecretNumber = Round (1000000000 * Rnd)

'Начальные значения текстовых полей:

txtNumber. Value =0

txtMessage. Value = "Попыток не было"

txtNumberTry. Value =0

'Процедура обработки нажатия на кнопку:

Sub cmdTry_ OnClick ()

A = int (txtNumber. Value) 'превращение строки в число

if A>SecretNumber then

txtMessage. Value = "Много"

elseif A<SecretNumber then

txtMessage. Value = "Мало"

else

txtMessage. Value = "Вы угадали"

end if

txtNumberTry. Value = txtNumberTry. Value + 1

End Sub

--></script>

 

</html>

Пояснения: Сценарий располагается между строками

<script language="VBScript"><!--

и

--></script>

Сравните текст сценария с текстом программы на Visual Basic. Они очень похожи. Полужирным шрифтом я выделил фрагменты сценария, которые отличают его от соответствующих фрагментов программы на Visual Basic. Так, новостью является запрет указания типа в операторах Dim. В этом случае переменные имеют тип Variant. Вместо свойства Text используется свойство Value. Вместо Click - OnClick. вместо Val - Int.

Для работы сценария необходимо было разместить на странице следующие элементы:

· КнопкуcmdTry с надписью "Попытка"

· Текстовое полеtxtNumber - для того, чтобы человек вводил туда очередное число

· Текстовое поле txtMessage - для слов "Много", "Мало" и "Вы угадали"

· Текстовое поле txtNumberTry - для отображения количества попыток

Но откуда взять эти элементы, если мы Visual Basic даже не запускали? Оказывается, размещаются они на странице средствами языка HTML. Язык VBScript для этого тоже не нужен.

Давайте не спеша читать HTML-документсверху вниз. Вот первая незнакомая строка:

Введите в текстовое поле <input type="text" size="20" name="txtNumber">

число от 1 до миллиарда и нажмите кнопку "Попытка"<p>

Посмотрите, какая строка Web-страницы ей соответствует. Выражение

<input type="text" size="20" name="txtNumber">

как раз и размещает в этой строке Web-страницы текстовое поле. То, что это должно быть именно текстовое поле, а не, скажем, кнопка, задает выражение input type="text", размер по горизонтали 20 задается выражением size="20", а имя поля задается выражением name="txtNumber".

В этой строке есть незнакомый нам тег - <p>. Это просто перевод строки на Web-странице.

 

Аналогично изложенному, следующая строка HTML-документа

<input type="button" name="cmdTry" value="Попытка"><p>

размещает в следующей строке Web-страницы кнопку (благодаря выражению input type="button"). Надпись на кнопке задается выражением value="Попытка".

Следующие три строки поясняются аналогично.

Доступ к локальному диску

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

Спрашивается, хорошо это или плохо - при помощи вашей Web-страницы иметь доступ к диску чужого компьютера? Это примерно то же самое, что спросить, хорошо это или плохо - прийти к незнакомому человеку в гости и пользуясь его доверчивостью иметь доступ ко всем вещам и секретным документам в его квартире. Если вы честный человек, то ничего не украдете и подглядывать не будете. Зачем вам тогда доступ? Получается, что доступ - это плохо? Не всегда. Он часто бывает нужен в общении между знакомыми людьми, которые доверяют друг другу и которым было бы удобно считывать информацию с локальных дисков друг друга.. Или возьмите ситуацию сохранения в играх. Пользователь, играющий на вашей страничке в "Угадай число" и желающий после 20-й попытки сохраниться, должен иметь возможность это сделать. Сделать же это проще всего на локальном диске. Но для этого нужен доступ к нему со стороны сценария игры. Выходит, что без доступа все-таки не обойтись.

Создатели VBScript предоставили программистам доступ к локальным дискам, но они прекрасно понимали опасность такого доступа, поэтому вся работа с файловой системой в VBScript организована совсем по-другому, чем в Visual Basic. Вместо непосредственной работы с файлами, как мы это делали с файлами на диске нашего компьютера, организованы специальные объекты, представляющие файловую систему и обеспечивающие более безопасную работу.

Проиллюстрирую работу VBScript с локальным диском на одном-единственном примере. Пусть ваша страничка посвящена разведению слонов в Антарктиде и она настолько интересна, что побывавший на ней снова и снова туда возвращается. Вставим на страничку сценарий, единственная цель которого - напомнить пользователю, сколько раз он был на этой странице. Вот внешний вид странички после открытия (сведения об успехах разведения слонов будут приведены в следующем издании книги):

 

 

Идея сценария такова. При первом открытии страницы на данном компьютере сценарий выдает на страницу сообщение "Вы на этой страничке ни разу не были", создает на локальном диске в корне диска С: файл INFORMAT.TXT и записывает в него значение счетчика посещений - число 0.

При каждом открытии страницы сценарий ищет в корне диска С: файл INFORMAT.TXT и если находит, то считывает с него значение счетчика, увеличивает его на 1 и отображает на странице в виде "Вы здесь были 5 раз". Если же файл не найден, сценарий делает вывод, что на этом компьютере страница еще не открывалась, и делает то, что я описал в предыдущем абзаце.

Вот HTML-документ нашей страницы со включенным в него сценарием:

<html>

<h2>Кое-что о разведении слонов в Антарктиде</h2>

<script language="VBScript"><!--

 

Dim objFs 'Объект - Файловая система локального диска

Dim objFile 'Объект - Файл

Dim sAdres 'Переменная - Адрес файла на диске

Dim intSchetchik 'Переменная - счетчик посещений страницы

 

sAdres="c:\INFORMAT.TXT"

Set objFs = CreateObject ("Scripting.FileSystemObject")

If objFs.FileExists (sAdres) Then

Set objFile = objFs.OpenTextFile(sAdres, 1)

intSchetchik = objFile.ReadLine

intSchetchik = intSchetchik + 1

Document.Write "Вы здесь были " & intSchetchik & " раз"

Else

Document.Write "Вы на этой страничке ни разу не были"

intSchetchik = 0

Set objFile = objFs.CreateTextFile (sAdres)

End If

objFile.Close

Set objFile = objFs.OpenTextFile(sAdres, 2)

objFile.WriteLine (intSchetchik)

objFile.Close

Set ObjFs = Nothing

--></script>

</html>

Пояснения: Прочтите строки объявлений. Далее рассмотрим строку

sAdres = "c:\INFORMAT.TXT"

Она задает адрес и имя текстового файла на локальном диске, в котором сценарий будет хранить счетчик посещений. Строка

Set objFs = CreateObject ("Scripting.FileSystemObject")

создает экземпляр объекта Файловая система. С этого мгновения вступают в действие меры безопасности. На экране компьютера, читающего вашу Web-страницу, возникает сообщение:

 

 

которое предупреждает пользователя, что программы на этой страничке могут быть опасными и не рекомендует разрешать их выполнение. У пользователя еще есть возможность нажать на No. Мой совет прост: Если эта страничка не принадлежит вашему лучшему другу - жмите No. Теперь рассмотрим строку

If objFs.FileExists (sAdres) Then

Здесь используется метод FileExists объекта objFs, который определяет, существует ли файл по указанному адресу sAdres. Смысл строки такой: Если файл c:\INFORMAT.TXT существует, то …

 

Строка

Set objFile = objFs.OpenTextFile(sAdres, 1)

открывает объект - текстовый файл для чтения (потому что 1). Строка

intSchetchik = objFile.ReadLine

считывает из него строку и присваивает счетчику. Следующая строка увеличивает счетчик на 1, а строка

Document.Write "Вы здесь были " & intSchetchik & " раз"

записывает на страничку указанный текст.

Из дальнейших строк поясню следующие:

Set objFile = objFs.CreateTextFile (sAdres)

создает на диске файл по указанному адресу.

objFile.Close

закрывает файл, независимо от того, какая ветвь оператора If выполнялась - Then или Else.

Set objFile = objFs.OpenTextFile(sAdres, 2)

открывает файл для записи (потому что 2).

objFile.WriteLine (intSchetchik)

записывает в файл значение счетчика.

Set ObjFs = Nothing

освобождает память компьютера от объекта Файловая система.

Собственный броузер

Вы можете внутри своего проекта создать собственный броузер, который даст вам возможность просматривать Web-страницы в окне, открытом прямо на форме. Ваши действия: Project ® Components ® Microsoft Internet Controls ® OK. Затем поместите на форму элемент управления WebBrowser размером побольше. Теперь вам достаточно выполнить строку

WebBrowser1.Navigate "http://www.yahoo.com/"

И если вы в данный млмент подсоединены к Интернету, в окне вашего броузера появится страничка с указанным в кавычках адресом:

 

 

Здесь Navigate - метод объекта WebBrowser1.

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

· Свойство Busy. Оно равно True, если броузер занят - ищет или скачивает страницы.

· Событие DocumentComplete. Наступает, когда страница или фрейм страницы загружены в окно броузера.

· Метод Stop. Пользуйтесь им, чтобы прервать слишком медленную загрузку Web-страницы.

.

 

Кроме описанных возможностей работы в Интернет, Visual Basic позволяет организовать работу с электронной почтой (E-mail), запускать Internet Explorer, не выходя из проекта, и т.д.

Если вы хотите совершенствоваться в создании Web-страничек, то сначала освойте стандартные средства HTML или Word или FrontPage, не используя программирования. И только затем снова беритесь за программирование.

 



Поделиться:


Последнее изменение этой страницы: 2016-08-12; просмотров: 405; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.141.8.247 (0.11 с.)