Глава 3. РАБОТА С ДАННЫМИ НА Web-СТРАНИЦАХ
Сохранение данных в
виде отдельного файла
Использование
VBScript для создания интерактивных динамических
Web-страниц позволяет разрабатывать приложения, которые
предоставляют пользователю возможность сохранять введенные данные на своем
рабочем месте или в сети на файловом сервере. Напомним, что для того чтобы
сохранить данные на Web-сервере,
необходимо создавать приложение, которое принимает сообщение пользователя и
проводит все манипуляции с данными на сервере. Такие процедуры создаются на
языках типа Perl или PHP,
как это делается можно посмотреть в обширной литературе по созданию серверных
приложений [5, 6], в данном пособии упор сделан на разработке сценариев только
на стороне клиента.
Во всех языках программирования
существуют функции для открытия файлов, записи в них данных, открытия файлов и
просмотра данных. В языке VBScript такие
возможности отсутствуют, так как считается, что пользователь должен только отправлять
данные на Web-сервер, а затем получать ответ об их безопасности.
Тем не менее, возможность ввода в текстовые окна данных существует, поэтому можно использовать
объекты Windows, которые воспринимают данные и
сохраняют в формате приложения Windows. Например, MS Word
воспринимает символьную информацию, которую пользователь может использовать на
своем рабочем месте. Комплексное использование приложений Windows и возможностей VBScript
во многом упрощает работу пользователя. Предположим, что с текущей Web-страницы необходимо скопировать фрагмент текста,
добавить к нему собственный комментарий, а затем все сохранить в виде
отдельного файла в формате MS Word. ПРИМЕР8 демонстрирует
возможность ввода данных в текстовое окно на Web-странице
и сохранения их в виде отдельного файла, внешний вид приложения показан на рис.
16.
Рис. 16. Приложение для ввода текста и сохранения в
виде отдельного файла
В
рассматриваемом примере, на Web-странице
размещены: текст; кнопка для удаления текста; текстовое окно для ввода текста;
текстовое окно для ввода адреса расположения файла с данными и имя файла;
кнопка для записи данных в файле, гиперссылка для открытия программных кодов
приложения. Программные коды Web-страницы
представлены в листинге 10.
Листинг
10.
<HTML>
<HEAD>
<TITLE>Сохранение
данных в Word</TITLE>
<SCRIPT LANGUAGE="VBScript">
Dim word1
Sub D1
Ta.value=""
End Sub
Sub D2
name1=gr.value
Set word1 = CreateObject("Word.Application") ' Переменной Word1 назначаю новый объект
word1.Documents.Add
word1.Documents(1).Activate
word1.Selection.TypeText Ta.value
word1.Documents(1).SaveAs name1
MsgBox("Файл с именем
" & name1
& " создан")
word1.Documents(1).close
End Sub
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#ddffcc">
<P ALIGN=CENTER>
<FONT SISE=4 FACE="Arial Cyr" COLOR=Brown>
Данное
приложение предоставляет возможность пользователю вводить текст в
окно,<BR>
копировать с Web-страницы фрагменты текста
и переносить в текстовое окно. А затем<BR>
сохранять данные, например, в текстовом
редакторе Word. Файл можно хранить<BR>
либо на своем рабочем месте, либо на
удаленном сервере в локальной сети организации.<BR>
</FONT>
<INPUT TYPE="BUTTON" VALUE="Очистить окно" onClick="D1()">
</P>
<P ALIGN=CENTER>
<TEXTAREA NAME="Ta" ROWS=6 COLS=28
Style="Font-size=16pt; Color=Navy;">
</TEXTAREA>
</P>
<P ALIGN=CENTER
style="background-color: yellow">
<FONT SIZE=3 Face=Arial
COLOR=navy><I>
Необходимо указать
путь для хранения данных в файле.<BR>
В качестве примера в окне показано имя файла
</I><B>dialog1.doc</B><I> и<BR>
наименование
папки </I><B>zona</B>, <I>в которой будет сохранен
файл, и имя<BR>
устройства
</I><B>c:\</B>, <I>на котором находится указанная папка
(директория).<BR>
Вы
можете заменить имена устройства папки(ок) и имя файла, а затем нажмите на
кнопку.</I><BR>
<INPUT TYPE="TEXT" NAME="gr"
VALUE="c:\zona\dialog1.doc" SIZE=28
style="background-color: #000000; color: white; font: 16pt
bold"><BR>
<INPUT TYPE="BUTTON" VALUE="Сохранить в документе Word"
onClick="D2()"><BR>
</FONT>
<A Target=Local
HREF="../Dop_files\Code2.htm" Title="Открыть страницу с кодами программы">
Посмотреть коды программы</A></P>
</BODY>
</HTML>
На VBScript
созданы две процедуры D1 и D2, которые запускаются кнопками. Процедура Sub D2
запускается после нажатия на кнопку с наименованием «Сохранить в документе Word». На рис. 16 в текстовом окне находится строка,
скопированная непосредственно с Web-страницы
(строка выделена темным цветом) и текст, который пользователь ввел с клавиатуры
в текстовое окно. Сценарий формирует новый объект, запись которой выглядит
следующим образом: Set word1 = CreateObject("Word.Application").
Далее встречается ссылка на коллекцию
объектов, которые принадлежат документу word1.Documents(1).Activate, в скобках
стоит индекс объекта, находящийся на документе, это текстовое окно с именем Ta, нумерация
индексов начинается с нуля, так как первым по порядку встречается объект –
кнопка, то его индекс равен нулю. Другая процедура Sub
D1 срабатывает после нажатия на кнопку с
наименованием «Очистить окно», при этом значению текстового окна присваивается
– пусто (Ta.value="").
Так как объект Word.Application является стандартным элементом ActiveX, имеет расширение .ocx,
то при попытке сохранить данные в приложении Windows
MS Word,
система выдает предупреждение рис. 17.
Рис. 17. Предупреждение системы
Пользователь
может в текстовом окне, где для примера уже сформирован путь к файлу с именем dialog1.doc, заменить имя
файла и путь к нему на свое усмотрение, поэтому в сценарии предусмотрено вывод
диалогового окна с подтверждением о том, в каком месте записаны данные, которое
показано на рис. 18.
Рис. 18. Сообщение сценария
На рис. 19 показан фрагмент открытого
документа Word с записанными в него данными.
Рис. 19. Отображение данных, переданных с Web-страницы в MS
Word
На
Web-странице, рассматриваемого примера введена
гиперссылка, которая позволяет открыть программные коды всего приложения в
браузере:
<A Target=Local
HREF="../Dop_files\Code2.htm"
Title="Открыть страницу с кодами программы">
Посмотреть коды
программы
</A>
В
данной гиперссылке используется параметр тега <A> - Target=Local, который
указывает системе Windows, что необходимо
открыть новое окно браузера и в нем отобразить Web-страницу
с именем: Code2.htm.