Eval() - js - error! F1 !

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

Sakharovich

Участник
Топикстартер
Сообщения
61
Реакции
0
В общем, что бы правельно задать вопрос сначала опишу симптомы:
итак имеется текстовый фаил состоящий из строк представляющих собой обьявление анонимного объекта js. таких строк в фаиле оч много десяток тыс, в скрипте происходит следующее : последовательное считывание строки, передача ее в функцию eval(), получаем некоторый объект который помещаем в массив. все. и работает это отлично, только не доконца а до ( в моем случае это ) 660 объекта, после чего выскакивает сообщение, что ожидается "}" - но это тоже частный случай, зависящий от конкретной строки стоящей 660 в фаиле. В связи с всеми изложенными моментами - думаю что в интерпритаторе js имеется ограничение на какие то занимаемые мной ресурсы - первое что приходит на ум - оперативная память. Для большей точности уточняю - работаю я в ESToolkit2, и вот собственно сам код:
var advs = new Array();
var file = new File('c://temptxtresort_tmp.txt');
file.open('r');
while( !file.eof ){
var str = file.readln();
str = 'var s='+str; //строка : 'var s = {"property" : "value"...}'
advs.push(s);
};//while(!file.eof)

Подскажите, кто знает, в чем тут дело, или может у кого нить есть идеи что это может быть?
 
Ответ: Eval() - js - error! F1 !

так может сбрасывает на parent (_class/_count/_parse/_proto)?
 
Ответ: Eval() - js - error! F1 !

Нет ничего проще! Где определяется, ну или хотя бы декларируется s, которое advs.push(s);??? А зачем ; после закрытой скобки while? Оно может и не хуже, мне просто интересно... Далее. Вы в цикле while каждый раз создаете новую переменную var str = file.readln();. Как писано в описании на JS такую переменную нельзя удалить даже при помощи delete(); Опишите ее до цикла и присваивайте каждый раз на здоровье. Еще. Я бы конструкцию типа 'var s =' определил как const LeftPart = 'var s =';, опять же до цикла и присваивал бы сумму этой константы и считанной строки третьей переменной, также определенной до цикла. Стэк функции не безграничен, тем более, что в файле, как вы говорите, оч много десяток тысяч строк. Наконец, если бы я был крутой программер, а я не такой, ;-) то я бы вообще написал нечто в духе advs.push(LeftPart + file.readln()); и вся недолга... ;-)

AirGraph.
 
Ответ: Eval() - js - error! F1 !

Всех поздравляю с тем что праздники закончились, терь можно приступить к работе. Итак. Сразу сказжу, что вопрос снят, проблема была в том, что из-за большего колличества данных трудно было отследить их корректность. причиной сбоя послужил символ двойных ковычек - лишний, отсюда все проблемы. Но на вопросы предыдущего поста все же отвечу : while после скобки всего лишь для удобства определения принадлежности скобки к конкретному оператору ... это так, сам се придумал, все остальные замечания по коду имеют один общий корень - отсутствие грамотности при написании кода, которое пораждено моей полной изоляцией от спецов( в рамках работы конечно ), однако я стараюсь эти пробелы восполнить, в контексте чего хотел бы спросить у вас, господа знающие, об источниках информации о языке js и его особенностях, что касается использования стеков и разного рода тонкостей, просто все что я находил это только элементарные описания функций и их параметров и применение в контексте web, а вот хотелось бы более обобщенное описание языка. Кто знает - будте так добры поделитесь.
 
Ответ: Eval() - js - error! F1 !

Рекомендую почитать CoreReferenceJS14.pdf, там вроде как все более-менее подробно написано.

AirGraph.
 
Ответ: Eval() - js - error! F1 !

Нешел, даж CoreReferenceJS15, тока htm, содержимое - то что нада, спасибо за рекомендацию!
 
Ответ: Eval() - js - error! F1 !

Я видел 15, но лично мне 14 нравится больше. PDF, на мой взгляд, удобнее (15 в PDF не видел), там примеров вроде больше да и сверстано как-то понятней, что-ли... ;-) Если твоя почта потянет аттач в 3.2 Мб, напиши мне в личку, махну тебе 14 PDF, но в принципе это, конечно, одно и то же.

AirGraph
 
Ответ: Eval() - js - error! F1 !

CoreReferenceJS14.pdf находится в первых ссылках результатов поиска Google.
 
Статус
Закрыто для дальнейших ответов.