сохранение переменных в файл

  • Автор темы Автор темы bossrus
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

bossrus

шибка умный, аднака
Топикстартер
12 лет на форуме
Сообщения
447
Реакции
74
как сохранить в файл текстовую строку — совершенно понятно.
Код:
var iniFile = File(path);
iniFile.open("w");
iniFile.writeln(famInd);
}

прочитать текст из файла построчно в массив — тоже элементарно.
Код:
var spisFile = File(path);
spisFile.open("r");
while (!spisFile.eof) {
    mag.push=spisFile.readln();
}
spisFile.close();

а вот теперь и вопрос — как сохранить в файл несколько переменных? причём массивов? причём разнотиповых?
вариант "сохранить сначала кучку строк из одной переменной, а потом из другой переменной, а в начало файла положить пару строк с количеством строк одной и другой переменной" я уже рассматриваю, но это слегка связано с гемором. потом делать преобразование строк в числа (я же сказал, что разные переменные разных типов), и прочее...
 
Если a — это массив, то запись сделать так:
Код:
iniFile.writeln(a.join("|"));
а прочитать потом так:
Код:
a = iniFile.readln().split("|");
 
  • Спасибо
Реакции: bossrus
это слегка связано с гемором. потом делать преобразование строк в числа (я же сказал, что разные переменные разных типов), и прочее...
Код:
var m = ['aaa', 25, [33, '34'], {a:'a', b:7}];
var s = m.toSource(); //same 'var s = uneval(m);' 
//write file
//read file
var n = eval(s)
//profit!
Только по уму надо делать не массив, а объект, чтобы не морочиться с индексами, а обращаться к переменным по именам полей объекта.
 
  • Спасибо
Реакции: bossrus
Если a — это массив, то запись сделать так:
Код:
iniFile.writeln(a.join("|"));
а прочитать потом так:
Код:
a = iniFile.readln().split("|");
мысль. а для разных переменных разные файлы. в принципе тоже вариант.
а яваскрипт умеет убивать файлы?

Только по уму надо делать не массив, а объект, чтобы не морочиться с индексами, а обращаться к переменным по именам полей объекта.
я пробовал сделать что-то типа класса в c#, но у меня как-то не заладилось :)
да и потом — если и сделать класс, то как его сохранить в файл?
 
  • Спасибо
Реакции: bossrus
Зачем? Для разных переменных — разные строки в одном файле. Массив пишется в одну строку указанным методом.

а-а-а. понял. а там разве нет ограничения по длине строки?
 
Боюсь, что нет.))
Untitled-1.jpg
 
  • Спасибо
Реакции: bossrus
если и сделать класс, то как его сохранить в файл?
Код:
function custom_class () {
    this.str_value = 'a';
    this.num_value = 1;
    this.arr_value = [1];
    this.constructor.prototype.change = function () {
            this.str_value += 'a';
            this.num_value += 1;
            this.arr_value.push(this.num_value);
    }
}

var cc = new custom_class();

cc.change();
cc.bool_value = false;
str = cc.toSource();
//write str to file
//read str from file
nn = eval(str);
nn.change();
nn.bool_value = true;
nn.toSource();
//profit!
 
  • Спасибо
Реакции: bossrus
и последний вопрос остался — яваскрипт умеет удалять файлы?
 
File.remove (): Boolean
Core JavaScript Classes
Deletes the file associated with this object from disk immediately, without moving it to the system trash.
Does not resolve aliases; instead, deletes the referenced alias or shortcut file itself. Returns true if the file was successfully removed.
IMPORTANT: Cannot be undone. It is recommended that you prompt the user for permission before deleting.
 
  • Спасибо
Реакции: bossrus
thanks so much :)
 
Статус
Закрыто для дальнейших ответов.