Автор:
Алексей Голубев
Сайт: http://www.frnet.narod.ru/
Многие
книги по Web-программированию отрицают возможность создания и использование файлов на клиентском компьютере. однако, это совсем не так. Я в этом убедился, когда копаясь по документации VBScript и JavaScript,
внезапно обнаружил эти функции. Недостаток их в том, что перед их выполнением IE и другие браузеры запрашивают подтверждение на их выполнение, но это и правильно, кто знает, что этот программист задумал
ввести в файл... Давайте теперь приступим к самим функциям.
1. Создание пустого файла.
На первый взглад эта функция может показаться бесполезной,
однако, как вы занесете данные в файл, не имея самого файла, не будем же мы потртить фалы посетителя нашей страници. Для того, чтобы создать пустой файл с помощью VBSctipt надо написать в HTML-файле следующий
код:
<script language="VBScript">
Dim fso, f1
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.CreateTextFile("c:\testfile.txt",
True)
</script>
Ту же самую функцию выполняет и следующий код, написанный уже на JavaScirpt:
<script language="JavaScript">
var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("c:\\testfile.txt", true);
</script>
Вот теперь, создав чистый
файл, можно приступить к его заполнению...
2. Запись данных в файл.
а) Открытие файла.
Для того, чтобы открыть файл надо применить следующий
скрипт:
Dim fso, ts
Const ForWriting = 2
Set fso = CreateObject("Scripting. FileSystemObject")
Set ts = fso.OpenTextFile("c:\test.txt", ForWriting,
True)
Данный скипт написан на VBScript. Здесь по-моему все понятно. ForWriting - флаг, показывающий зачем открывать файл. Вот тот же скрипт на JavaScript:
var fso, ts;
var ForWriting= 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
ts = fso.OpenTextFile("c:\\test.txt", ForWriting, true);
Надо
отметить, что при этом файлы будут автоматически создаваться.
б) Непосредственная запись в файл.
Для занесения строчек текста в файл используется следующие методы:
Задача | Метод |
Втавка новой строки, с последующей возможностью добавления в этуже строку данных,
т.е. в конце строки нет символов переноса строки и возврата каретки. | Write |
Втавка новой строки с переносом на следующую. | WriteLine |
Вставка одной
или несколких пустых строк. | WriteBlankLines |
Вот примеры скриптов. На VBScript:
Sub CreateFile()
Dim fso, tf
Set fso = CreateObject("Scripting.FileSystemObject")
Set tf = fso.CreateTextFile("c:\testfile.txt", True)
' Вставка строки с переносом на новую.
tf.WriteLine("Testing 1, 2, 3.")
' Вставка 3 путых строк.
tf.WriteBlankLines(3)
' Вставка новой строки, без переноса.
tf.Write ("This is a test.")
' Закрытие файла.
tf.Close
End Sub
На JavaScript:
function CreateFile()
{
var fso, tf;
fso = new ActiveXObject("Scripting.FileSystemObject");
tf = fso.CreateTextFile("c:\\testfile.txt",
true);
// Вставка строки с переносом на новую.
tf.WriteLine("Testing 1, 2, 3.") ;
// Вставка 3 путых строк.
tf.WriteBlankLines(3) ;
// Вставка новой строки, без переноса.
tf.Write
("This is a test.");
' Закрытие файла.
tf.Close();
}
Вот и все. Что с этим делом делать вы наверное уже знаете. В мирных целях эта возможность создавать
файлы на клиентских машинах очень полезна. Можно предложить посетителю скачать ваш фирменных значок и установить его в кчестве значка дика C, D, E, F, ..., Z. Можно создать autorun для диска X, в котором
будет прописана строка, которая позволит загружать ваш фирменный сайт при запуске этого диска. Сохранение настроек без использования cookies и т. д. и т.п. На этой оптимистической ноте я заканчиваю. Спасибо
за внимание.
P.S. Вы можете cкачать этот пример со страницы: http://www.frnet.narod.ru/script.html.
Или
задать вопрос автору и ведущему раздела alexey-golubev@mail.ru
Обсудить в форуме...>>>>