@pojigu-equvev А это для кого ? Поиск по названию, рядом столбик с недавними переменными.
alt text
@mansory333 said in Получить список всех созданных переменных, отладка:
@support а можете добавить исключения?
Не добавлять некоторые переменные. К примеру переменные с base64 json объекты и тд..
дак код же в открытом виде, добавляйте условия какие угодно
@Fox Кое как сделал, js знаю плохо
var iskl = ["SCREENSHOT_BASE64","DATA_JSON","SAVED_PAGE_HTML"]
var AllVariablesTable = Object.keys(this)
.filter(function(e){return e.indexOf("VAR_") == 0})
.reduce(function(all,one){
try
{
if(iskl.indexOf(one.slice(4)) == -1 ){
all[one.slice(4)] = eval(one)
}
}catch(e)
{
all[one.slice(4)] = "undefined"
}
return all;
},{})
var gg = JSON.stringify(AllVariablesTable)
Но не могу понять как его в список сохранять в тхт
Результат
{"CYCLE_INDEX":0,"FOREACH_DATA":"","FOR_EACH_CSS":">NOTDEFINED>","FOR_EACH_MATCH":">NOTDEFINED>","FOR_EACH_XPATH":">NOTDEFINED>","WAS_ERROR":false,"LAST_ERROR":"","ERROR_ID":0,"NEW_LIST":"","TIME":1608411092,"HEX":["#CADABA"],"THREAD_INDEX":1}
Не знаю за что зацепится. переменные разделены запятыми, В саблайме можно через запятые сделать каждую переменную с новой строки, но если в значении есть "," то все ломается.
Не подскажешь как сделать?
upd
Посмотрел хорошенько на результат. Что то очень похож на json)
Короче перевел его в json объект
Спасибо за помощь))
@mansory333 said in Получить список всех созданных переменных, отладка:
@Fox Помоги пожалуйста, код выше не работает в режиме Запуска
Тестовый скрипт
test3.xml
Переменные BAS объявляются без приставки var

Скорее всего данный метод устарел в принципе, попробуйте выполнить код:
var AllVariablesTable = Object.keys(this)
log(JSON.stringify(AllVariablesTable))

@mansory333 said in Получить список всех созданных переменных, отладка:
@Fox Проверил, в режиме запуска работает.
И что именно этот "рабочий" код выдал в лог?
@mansory333 said in Получить список всех созданных переменных, отладка:
Ну, я этот же скриншот и приложил в своём сообщении:

Присмотритесь, где в значении этого кода названия ваших переменных?
@Fox Там нет моих переменных..
И в логе массив, а там был объект
Это в режиме Запуска нет моих переменных, а в режиме Запись есть
И как же их получить в режиме запуска?
@mansory333 said in Получить список всех созданных переменных, отладка:
@Fox Там нет моих переменных..
И в логе массив, а там был объект
А вы загуглите метод Object.keys()
Это в режиме Запуска нет моих переменных, а в режиме Запись есть
И как же их получить в режиме запуска?
Я же об этом и говорю, скорее всего ни как
А вы загуглите метод Object.keys()
Загуглил, но не понятно как его связать с режимом Запуск.. Ну да ладно, решил пойти по другой дороге.
Запускать этот код по завершении скрипта
var AllVariablesTable = Object.keys(this)
[[GG]] = JSON.parse(JSON.stringify(AllVariablesTable))
var iskl = ["SCREENSHOT_BASE64","DATA_JSON","SAVED_PAGE_HTML","CYCLE_INDEX"]
var perem = []
**тут кубик foreach**
one = [[FOREACH_DATA]]
if(one.substr(0, 4) === "VAR_" && iskl.indexOf(one.substr(4)) == -1){
log(iskl.indexOf(one.substr(4)) == -1)
perem.push(one)
}
В итоге имеем массив с переменными вида VAR_NEW_VARIABLE
При втором запуске скрипта и появлении ошибки читаем тхт с переменными и ...
Я остановился тут. Надо как то создать объект из каждого элемента массива.
Проблема в том, что не могу добавить в объект
obj.VAR_NEW_VARIABLE = eval(VAR_NEW_VARIABLE)
Простите за мой гвно код)
obj.perem = eval(perem[i])
Вот так значение переменной правильное, а вот ключ как изменить
@mansory333 said in Получить список всех созданных переменных, отладка:
А вы загуглите метод Object.keys()
Загуглил, но не понятно как его связать с режимом Запуск.. Ну да ладно, решил пойти по другой дороге.
Вы спросили почему этот код возвратил массив, а не объект, я ответил почему
Запускать этот код по завершении скрипта
var AllVariablesTable = Object.keys(this) [[GG]] = JSON.parse(JSON.stringify(AllVariablesTable)) var iskl = ["SCREENSHOT_BASE64","DATA_JSON","SAVED_PAGE_HTML","CYCLE_INDEX"] var perem = [] **тут кубик foreach** one = [[FOREACH_DATA]] if(one.substr(0, 4) === "VAR_" && iskl.indexOf(one.substr(4)) == -1){ log(iskl.indexOf(one.substr(4)) == -1) perem.push(one) }В итоге имеем массив с переменными вида VAR_NEW_VARIABLE
При втором запуске скрипта и появлении ошибки читаем тхт с переменными и ...
Я остановился тут. Надо как то создать объект из каждого элемента массива.
Проблема в том, что не могу добавить в объект
obj.VAR_NEW_VARIABLE = eval(VAR_NEW_VARIABLE)Простите за мой гвно код)
obj.perem = eval(perem[i])
Вот так значение переменной правильное, а вот ключ как изменить
Вы меня тролите чтоли? Я говорю, что в окружении "this" сейчас нет локальных переменных BAS'a, что в режиме "запуск" не получить от них данные, раз их нет в окружении!
@Fox Я вас не понимаю.
К примеру есть у меня тхт файл и в нем строка VAR_NEW_VARIABLE
Разве я не могу читать файл в середине скрипта.
Получить значение переменной в данный момент
var error = [VAR_NEW_VARIABLE] = eval(VAR_NEW_VARIABLE)
И записать переменную error в папку error для отладки.
Так как баги не всегда в режиме Записи появляются
@mansory333 said in Получить список всех созданных переменных, отладка:
@Fox Я вас не понимаю.
К примеру есть у меня тхт файл и в нем строка VAR_NEW_VARIABLE
Разве я не могу читать файл в середине скрипта.
Получить значение переменной в данный момент
var error = [VAR_NEW_VARIABLE] = eval(VAR_NEW_VARIABLE)
И записать переменную error в папку error для отладки.
Так как баги не всегда в режиме Записи появляются
Получить значение вы можете, но вот получить список всех переменных нет. Если вы хотите знать в определённый момент времени значение определённых переменных, то это делается элементарно через eval()
@Fox said in Получить список всех созданных переменных, отладка:
знать в определённый момент времени значение определённых переменных
да, хочу знать.
Не подскажите как через eval() сделать?
@mansory333 said in Получить список всех созданных переменных, отладка:
@Fox said in Получить список всех созданных переменных, отладка:
знать в определённый момент времени значение определённых переменных
да, хочу знать.
Не подскажите как через eval() сделать?
var q = eval(VAR_NEW_VARIABLE)
log(q)
@Fox ну так тоже самое
var error = [VAR_NEW_VARIABLE] = eval(VAR_NEW_VARIABLE)
Короче в режиме записи не получится получить значение всех переменных, только если есть заранее подготовленный файл с переменными.
Спасибо большое за помощь)
@mansory333 said in Получить список всех созданных переменных, отладка:
Короче в режиме записи не получится получить значение всех переменных, только если есть заранее подготовленный файл с переменными.
В режиме "записи" как раз только и возможно получить значения всех переменных, в режиме "запуска" нельзя