Многие книги по 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 и т. д. и т.п. На этой оптимистической ноте я заканчиваю. Спасибо за внимание.Ссылки по теме: Ссылка на сайт к статье о создании файлов при помощи JavaScript и VBScript: http://www.frnet.narod.ru/ |