Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000182.doc
Скачиваний:
4
Добавлен:
30.04.2022
Размер:
731.14 Кб
Скачать

Создание объекта файловой системы

Чтобы получить доступ к файловой системе, необходимо создать для нее объект FileSystemObject (экземпляр FSO). Если программа на JavaScript будет выполняться браузером как сценарий в HTML-документе, то для создания FSO можно использовать только следующее выражение:

var fso = new ActiveXObject ("Scripting.FileSystemObject")

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

- ссылка на объект файловой системы (FSO) для доступа к ее объектам

var fso = new ActiveXObject ("Scripting.FileSystemObject")

- методы доступа к существующим объектам и методы создания новых объектов

var x = fso.методОбъекта(параметры)

- свойства и методы конкретного объекта — диска, папки или файла

var у = х.свойство(параметры)

var z = х.метод(параметры)

Открыть файл можно осуществить следующими способами:

var fso = new ActiveXObject

("Scripting.FileSystemObject")

var myfile = fso.OpenTextFile(filepath, mode)

var fso = new ActiveXObject

("Scripting.FileSystemObject")

var fileobj = fso.GetFile(filepath)

var myfile = fileobj.OpenAsTextStream(mode)

Здесь filepath — имя файла, возможно, с указанием пути к нему; mode — режим открытия файла: 1 — только для чтения; 2 — для записи; 8 — для добавления.

Приведём несколько примеров записи и чтения данных.

var filepath = "С:\\Мои документы\\TextFile.htm"

var fso = new ActiveXObject

("Scripting.FileSystemObject")

var myfile = fso.CreateTextFile(filepath, true)

// создание в режиме записи

myf11e.WriteLine("<html>")

myfile.WriteLine("<hl>Привeт всем!</h1>")

myfile.Write("<script> alert('Какое-нибудь

сообщение')</script>")

myfile.WriteBlankLines(2) // две пустые строки

myfile.Close() // закрываем файл

var fso = new ActiveXObject

("Scripting.FileSystemObject")

var myfile = fso.OpenTextFile(filepath,8)

/* открываем в режиме добавления */

myfile.Write("</html>") // дописываем

myfile.Close() // закрываем файл

var fso = new ActiveXObject

("Scripting.FileSystemObject")

var myfile = fso.OpenTextFile(filepath,1)

// открываем в режиме чтения

myfile.Read(6) // читаем 6 байтов: "<html>"

myfile.SkipLine() // пропускаем строку

var x = myfile.ReadLine() /* читаем третью

строку:"<h1>Привет Bceм!</hl> */

Запуск приложений

Для запуска приложений служит метод Run() объекта Wscript.Shell. Командная строка запуска приложения (обычно это просто полное имя файла программы) передается методу в качестве строкового параметра.

Примеры

var Myshell = new ActiveXObject("WScript.Shell")

Myshe11.Run("winword.exe

C:\\My\\mydocument.dope")

Myshell.Run("C:\\MyFolder\\myprogram.exe")

Работа с реестром

Программа JavaScript с помощью методов Windows Scripting Host может организовать невидимую пользователем работу с реестром (если он не заблокировал выполнение сценариев). Это методы объекта Wscript.Shell, входящего в состав WSH:

RegRead() — возвращает запись реестра или значение параметра;

RegWrite() — создает новую запись в реестре или изменяет значение параметра уже существующей записи;

RegDelete() — удаляет запись реестра или параметр.

Применение этих методов имеет следующий синтаксис:

var Myshell = new ActiveXObject("WScript.Shell")

Myshell.метод(параметры)

Метод RegWrite() принимает в качестве параметра строку, содержащую имя раздела реестра, за которым указывается имя параметра. Все элементы имени раздела разделяются двойными обратными слэшами. Например, в строке "hkey_current_user\\Myreg\\myparam" последний элемент myparam является именем параметра, а не раздела реестра.

Примеры

var Myshell = new ActiveXObject("WScript.Shell")

/* Создание подраздела Myreg в разделе hkey_current_user и присвоение параметру по умолчанию значения "значение": */

Mуshell.RegWrite("hkey_current_user\\Myreg\\", "значение")

/* Создание в разделе hkey_current_user\ Myreg строкового параметра myparaml и присвоение ему значения "некоторая строка": */

Myshell.RegWrite("hkey_current_user\\Myreg\\myparaml", "некоторая строка")

/* Создание в разделе hkey_current_user\ Myreg двоичного параметра myparam2 и присвоение ему значения 5: */

Myshell.RegWrite("hkey_current_user\\Myreg\\myparam2", 5, "reg_binary")

/* Создание в разделе hkey_current_user\ Myreg параметра myparam3 типа dword и присвоение ему значения 3: */

Myshell.RegWrite("hkey_current_user\\Myreg\\myparam3", 3, "reg_dword")

Вместо полных имен корневых разделов реестра можно использовать их сокращенные обозначения. Например, вместо hkey_current_user можно писать hkcu.

Пример. Запись установки стартовой страницы

var Myshell = new ActiveXObject("WScript.Shell")

var mystartpage = http://www.myweb.ru /* нужная страница */

/* Проверяем, какая веб-страница является начальной: */

startpage = Myshell.RegWrite

("hkcu\\software\\Microsoft\\Internet

ExplorerUMainUStart Page")

if (startpage != mystartpage) // если другая

Myshell.RegWrite("hkcu\\software\\Microsoft\\

InternetExplorer\\Main\\StartPage", mystartpage)

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

ЗАКЛЮЧЕНИЕ

JAVASCRIPT И ДРУГИЕ

СЦЕНАРНЫЕ ЯЗЫКИ

Многие популярные сценарные языки создавались не для Web-программирования. Perl и Python разрабатывались для написания сценариев в ОС UNIX, Rexx — в ОС фирмы IBM. Появление HTML и Web-серверов стимулировали развитие сценарных языков в сторону реализации серверной части Web-систем. Рассмотрим коротко основные черты сценарных языков.

XHTML

Фактически роль XHTML заключается в попытке предотвратить написание программистами некорректного HTML-кода за счет применения жестких правил XML к HTML. Для написания XHTML-кода используются те же дескрипторы, атрибуты и каскадные списки стилей, что и в HTML. Помимо внесения некоторых строгих правил кодирования в HTML, XHTML является расширяемым (отсюда и буква X в XHTML, от extensible — расширяемый) и модульным. Расширяемый означает, что язык XHTML позволяет, как производителям браузеров (в первую очередь), так и программистам, расширять HTML за счет добавления новых дескрипторов. Модульный предполагает, что производители браузеров смогут уменьшить размеры их браузеров за счет исключения кода для XHTML-элементов, которые не требуются для их платформ.

Таким образом, если вы соблюдаете следующие правила, вы скоро научитесь писать правильный XHTML-код:

• XHTML-документы должны быть правильно построены.

• Элементы должны быть вложенными и не должны перекрываться.

• Все имена элементов и атрибутов должны быть написаны с использованием символов нижнего регистра.

• Открытые дескрипторы контейнеров должны быть закрыты, а пустые дескрипторы должны иметь терминатор.

• XHTML-документы должны начинаться с объявления DOCTYPE.

• Значения всех атрибутов должны заключаться в кавычки.

• XHTML-документы в разделе заголовка должны содержать элемент <title>.

При посещении Web-страниц в сети Internet заголовок каждой страницы выводится в строке заголовка окна браузера. Web-браузеры используют заголовки в качестве имен закладок. Слайдеры (автоматизированные программы поиска в Web) используют текст заголовка страницы для включения ее в поисковые машины.

Python

Python активно используется в качестве языка программирования сценариев административного управления (в частности, он играет роль основного системного средства составления сценариев во многих дистрибутивных пакетах Linux) и в Web (в частности, существует и относительно распространен модуль Python для популярного Web-сервера Apache). Язык адаптирован для множества платформ.

Особенность языка — использование отступов для выделения блоков программы и вложенности операторов.

Ruby

Язык Ruby разрабатывался как альтернатива Perl (как недостаточно мощному) и Python (как языку, в котором непоследовательно реализовано объектно-ориентированное программирование). Как образец реализации ООП был избран Smalltalk, где все структуры языка (включая классы) — объекты.

Ruby ориентирован скорее на разработку сценариев, чем на подготовку полномасштабных компилируемых программных модулей. Он несет на себе отчетливый отпечаток «практического» языка, созданного для использования в реальных системах, а не ради иллюстрации академических концепций и принципов программирования. В нём реализованы итераторы, обработчики исключений, простая процедура разработки дополнительных средств на Си и др. Ruby не обеспечивает множественного наследования, заменяя его концепцией модулей, язык не предъявляет жестких требований к объявлению переменных.

Ruby содержит хорошо подобранный набор возможностей: списки (выполняющие также роль массивов) и хэш_таблицы (словари), роль списков с элементами произвольного типа в Ruby играют так называемые «контейнеры».

Perl

Perl (Practical Extraction and Report Language, «практический язык извлечений и отчетов») создан в 1986 г. Ларри Воллом (Larry Wall), системным администратором NASA. Первоначально он создавался как командный язык для UNIX. С появлением Web этот язык для формирования отчетов и обработки текстов обрел второе рождение. Синтаксис и набор операторов (значительно урезанный) заимствованы у Си. Отличительная особенность Perl — наличие мощных механизмов работы со списками и хэш-таблицами, позволяющими реализовать обработку текстов. Впоследствии Perl был адаптирован для работы с Интернетом. В настоящее время это один из самых распространенных Web-языков. Perl знаменит не столько сам по себе, сколько благодаря библиотеке CPAN (www.cpan.org), в которой содержатся самые разнообразные модули, вплоть до нейросетевых решений.

Perl —язык, который не имеет полноценных процедур. В процедурах Perl нет параметров (точнее, параметры необходимо извлекать из специальной переменной $_). Этот язык не имеет объектно-ориентированных механизмов. Однако достаточно мощный механизм модулей (так называемых «пакетов») позволяет в какой-то мере компенсировать этот недостаток. Наследование в Perl можно организовать с использованием указателей.

РНР

РНР (первоначально Personal Home Page – персональная домашняя страница, с 1997 г. – РНР Hypertext Processor) представляет собой гипертекстовый препроцессор, который позволяет генерировать Web-содержимое "на лету". Операторы, предназначенные для обработки PHP-процессором, хранятся в отдельном файле или внедряются в HTML-код Web-страницы.

При запросе Web-браузером PHP-страницы сервером выполняются PHP-операторы, содержащиеся между начальным (<?php или <?) и конечным (?>) дескрипторами PHP-сценария. PHP-процессор записывает результаты выполнения PHP-операторов и весь текст, находящийся вне дескрипторов PHP-сценария, на Web-страницу (которая будет передана Web-браузеру).

В то время как клиентские языки сценариев (например, JavaScript) выполняются Web-браузером, РНР представляет собой серверный язык, т.е. РНР-сценарий, внедренный на Web-страницу, выполняется Web-сервером (а не Web-браузером). Большинство PHP-кода может выполняться под управлением различных операционных систем.

Особенность использования РНР заключается в том, что Web-браузер не работает с РНР-операторами, внедренными на Web-страницу. В отличие от JavaScript, VBScript, JScript или других клиентских языков сценариев, при написании РНР-сценариев не нужно беспокоиться о поддержке Web-браузером языка РНР. Для создания страницы, использующей РНР, необходимо просто вставить на страницу PHP-команды, которые должны выполняться в HTML-коде страницы, и присвоить файлу Web-страницы имя с расширением, связанным с РНР-процессором (например, .php).

РНР стал главным серверным языком сценариев для многих Web-серверов по следующим причинам.

• Язык РНР позволяет создавать сложные Web-сайты практически для любой платформы.

• Язык РНР обладает простым объектно-ориентированным синтаксисом. Конструкции языка РНР знакомы многим разработчикам, работающим с процедурными или объектно-ориентированными языками программирования (С, C + +, Java, Pascal или Visual Basic).

• Программы на РНР очень быстро выполняются. PHP-страницы могут компилироваться, оптимизироваться и кэшироваться в памяти, что позволяет серверу одновременно обрабатывать большое количество РНР-страниц без существенного снижения производительности.

Благодаря наличию сотен стандартных функций РНР в состоянии решить практически любую задачу, которая может придти в голову разработчику. В нем имеется обширная поддержка создания графики и операций с ней, математических вычислений, средств электронной коммерции и таких популярных технологий, как XML (Extensible Markup Language), ODBC (Open Database Connectivity) и Macromedia Shockwave.

Пример.

<html>

<body>

<?php phpinfo () ;?>

</body>

</html>

Приведенный выше HTML-код на Web-сервере в файле с именем test.php вернетWeb-браузеру информацию о текущей версии процессора, конфигурации РНР, среде и переменных.