Создание файлов при помощи JavaScript и VBScript

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);

Надо отметить, что при этом файлы будут автоматически создаваться.

Вот примеры скриптов. На 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. Что-то не работает... Машина - клиентская. Как видоизменить код? Интересно: есть ли альтернативные, но работающие варианты? Заранее благодарен.

Николай Н.

Вот создание блокнота и сразу же вставка в него текста из буфера обмена. Каждый раз создаётся новый блокнот с новым именем.
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
clipboard = CreateObject("HTMLFile").parentWindow.clipboardData.getData("text")
Randomize()
FileName =int((100 * Rnd) + 1)
If FSO.FileExists("Блокнот_" & FileName & ".txt") Then
WScript.Echo "Документ ''"& "Блокнот_" & FileName & ".txt" & "'' - уже существует."
WScript.Quit 0
Else
fso.CreateTextFile("БЛОКНОТ_" & FileName & ".txt")
End If
set oFile = CreateObject("Scripting.FileSystemObject").OpenTextFile("Блокнот_" & FileName & ".txt", 2, True)
ofile.WriteLine(clipboard)
ofile.Close