FRNET.NAROD.RU » Статьи » Еще немного о работе с файлами...
  » Навигация
- - - - - - - - - - - - - - - -
  » Наша кнопка
- - - - - - - - - - - - - - - -
   » Еще немного о работе с файлами...
 
Автор: Алексей Голубев

Сайт: http://www.frnet.narod.ru/

Мне казалось, что все, что можно было рассказать о работе с файлами, я уже рассказал. Однако мне приходят письма от подписчиков, в которых мне задают те или иные вопросы по этой теме. Итак отвечаю по порядку на них.

1. Как сохранить файл с именем, типа: f****.txt, где **** - случайное число?

Вот такая функция прекрасно справляется с поставленной задачей:

function cf_random()
{
a=Math.round(Math.random()*10000); //Генерация случайного четырехзначного числа
b="c:\\f"+a+".txt" //Генерация имени файла
var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile(b, true); //Создание файла со случайным именем, хранящимся в переменной b и открытие его для записи
f1.WriteLine("Testing 1, 2, 3.") ; //Занесение информации в файл
document.writeln("Создан файл с именем:" + b); //Вывод сообщения в окно браузера.
}
Желательно перед сохранением файла проверить на наличие такого в том же каталоге, как описано в статье Проверка наличия файла.

Скачать пример можно здесь.

2. Как пользователю дать возможность сохранить свои данные в файле?

Сначала код функции для обработки нажатия кнопки сохранения:

function create_file(a)
{
var fso, tf;
fso = new ActiveXObject("Scripting.FileSystemObject"); //Создаем экземпляр объекта FSO
tf = fso.CreateTextFile("c:\\user_text.txt", true);//Создаем файл с именем c:\user_text.txt и открываем его для записи
tf.Write (a); //Записываем в него текст, переданный функции в качестве параметра
tf.Close(); //Закрываем файл
}
А теперь и сама форма:

<textarea id=txt rows=10 cols=30></textarea><br>
<input type="button" value="Сохранить" onclick="create_file(txt.value)">
Скачать пример можно здесь.

3. Можно ли при чтении файла пропускать не байты, а строки?

Конечно можно! И в статье Чтение информации из текстового файла описан этот метод: SkipLine.

4. Как в файл вставить строку текста в определенное место?

Добавления строки в файл в определнное место используйте следующую функцию на JavaScript:

function insert_line(cf, pos, txt) {
var ForReading=1, ForWriting=2;
var fso, f1, f2, l, p, tmp;
tmp=cf+".tmp"; //задаем имя для временного файла
fso = new ActiveXObject("Scripting.FileSystemObject");
f1=fso.OpenTextFile(cf, ForReading, true); //открываем указаныый файл
f2=fso.OpenTextFile(tmp, ForWriting, true); //создаем временный
while(!f1.AtEndOfStream) { //работем с файлами, пока не дойдем до конца
p=f2.Line; //получаем текущую строку, во временном файле
if (p==pos) { f2.WriteLine(txt); } // если это то положение, в которое нам надо занести строку, то заносим
l=f1.ReadLine(); // в любом случае считываем строку из файла
f2.WriteLine(l); // и заносим ее во временный файл
}
f1.Close(); //закрываем
f2.Close(); // оба файла
f2=fso.GetFile(cf); //получаем данный файл
f2.Delete(); // и удаляем его
f1=fso.GetFile(tmp); //получаем временный файл
f1.Move(cf); // и переменовываем его в указанное имя
}
cf - полный путь к файлу, в который нужно вставить строку, например: "c:\\some_folder\text.txt".

pos - под каким номер будет располагаться строка в файле.

txt - строка, которую нужно вставить.

Скачать пример можно здесь.

Статьи той же тематики, советую прочитать всем, кто это еще не читал, но кого заинтересовала данная тема:

Создание файлов при помощи JavaScript и VBScript
Работа с каталогами. Часть 1
Работа с каталогами. Часть 2
Чтение информации из текстового файла
Проверка наличия файла
Копирование, перемещение, удаление файлов с клиентского компьютера

 

  » Друзья сайта
- - - - - - - - - - - - - - - -
  » Разное
- - - - - - - - - - - - - - - -
  » Счетчики
- - - - - - - - - - - - - - - -
  Дизайнер и ведущий проекта: Голубев Алексей
Copyright Alexei Golubev © 2004
Hosted by uCoz