Запись в файл, чтение из файла

 
0
 
JavaScript
ava
guest | 19.10.2004, 21:09
В JavaScript'е есть такие команды которые позволяют записывать текст в файл и читать из него текст? :qstn
Comments (3)
ava
Се ля ви | 20.10.2004, 00:45 #
Не выйдет - безопасность, однако!
Может в одном из браузеров и есть баг или дырка, но использовать ее не советую.
--
Для того чтоб "проверить", можно использовать try..catch:
var fso = null;
try{
fso = new ActiveXObject("Scripting.FileSystemObject");
}
catch(e){
fso = null;
}
// ну, а потом ...
if(fso){
// все прошло...
}
else
{// фиг тебе.
}



Если всё-таки заработает, то вот выписка из одного уже давно не существующего сайта:
Добавление данных в текстовый файл

Для добавления данных (записи информации) в текстовые файлы, используется три метода: Write, WriteLine и WriteBlankLines.
       Write - записывает данные в файл в одну строку

       WriteLine – записывает данные, с переходом на новую строку.

       WriteBlankLines – записывает пустую строку.
 
    var FSO = new ActiveXObject("Scripting.FileSystemObject"); 
   var f = FSO.OpenTextFile("c:\\testfile.txt", 2, true);
   //Открываем файл, если он не создан, создаем его

   //записываем строку:
   f.WriteLine("Этот файл создан JScript!" );

   //вставляем 5 пустых строк
   f.WriteBlankLines(5);

   //снова записываем строку:
   f.Write("Еще одна строка!");

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



Чтение из текстового файла

Для чтения данных из текстовых файлов используются методы Read, ReadLine, ReadAll, Skip и SkipLine.

Методы:

Read – читает из файла указанное количество символов;

ReadLine – читает одну строку из файла;

ReadAll – считывает весь файл;

Skip – пропускает указанное количество символов;

SkipLine – пропускает строку.


Приведем в качестве примера следующий сценарий:

    var FSO = new ActiveXObject("Scripting.FileSystemObject"); 

   //Открываем файл, если он не создан, создаем его:
   var f = FSO.OpenTextFile("c:\\testfile.txt", 2, true);

   //записываем строку:
   f.WriteLine("Этот файл создан JScript!");

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

   //"получаем" файл:
   var FF = FSO.GetFile("c:\\testfile.txt");

   //открываем его методом OpenAsTextStream
   //для чтения:
   var MyFile = FF.OpenAsTextStream(1);

   //пропускаем 17 символов:
   MyFile.Skip(17);

   //читаем слово:
   MyLine = MyFile.ReadLine();

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

   alert(MyLine);
   //возвратит "JScript!"


Эти штуки вообще-то были разработаны для приложений HTA, которые по-сути являются обычными программами, написанными на JScript с интерфейсом, описанном на HTML, для них существует куча объектов, в т.ч. и интеграция с MS Office`ом. А Explorer даже если и даст работать с ними на сайтах, то только с особого разрешения пользователя...
ava
guest | 20.10.2004, 21:47 #
Се ля ви, ты говоришь что метод WriteLine – записывает данные, с переходом на новую строку.
Когда обновляешь страницу, я так понял WriteLine должен записать на следущей строке ещё раз тоже самое и в итоге получится две одинаковые записи подряд, но у меня WriteLine записывает строку заново. :(
Как сделать так чтобы получилось две одинаковые записи подряд при обновлении страницы? :qstn
ava
Се ля ви | 20.10.2004, 23:39 #
То, о чём ты пишешь, называется добавлением к файлу. Думаю, что по аналогии с Java нужно просто при открытии передать какой-нибудь булиновый параметр типа append...

Я с этим не возился, так что, честно говоря, дольше разбираться как это правильно делается, чем просто считать и записать вместе с новыми данными всё поверх, если быстродействие не сильно критично...

А вооще посмотри документацию на Windows Host Script (и конкретно на объект FileSystemObject) - там должен быть ответ, это вещи достаточно употребимые. Microsoft ведёт политику на то, что эти приложения должны заменить собой в графической среде консольные bat-файлы, бывшие популярными в DOS`е, хотя по лаконичности, IMHO, у них с этим не очень-то получилось - всё-таки это уже практически настоящее программирование с применением ООП-подхода...
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit