@kroda у меня лично ничего не лагает на get/post Запросах, попробуйте заменить работу с файлами на базу данных, регулярки тоже достаточно плохое решение, или попробуйте юзать их через nodejs. Нужно работать с логикой, и проблем не будет, нужна оптимизация. И проц достаточно старый, на нём вполне может всё лагать, уже 8 лет исполнилось ему, и DDR3 память уже тоже устаревшая, туда-сюда уже DDR5 готовится к выходу)
Проверить существование в ресурсе, удаление по значению
-
Здравствуйте. Подскажите, пожалуйста. Есть ресурс, в котором идут строки следующего вида:
123:en
124:en
153:de
154:en и так далее.Нужно получить индекс строки, по части элемента, чтобы ее установить в переменную. Поиск осуществляется по ID. indexOf работает только по полному совпадению. Как можно реализовать задуманное?
Вот исходный код:
var a = RMap("BLACKLIST_1"); var index = a.indexOf([[USER_ID]]) [[USER]] = a.at(index)USER_ID - часть строки с ID
BLACKLIST_1 - ресурс с ID:ISO (en,de)
USER - переменная куда нужно установить строку по индексу -
@azaza777 said in Проверить существование в ресурсе, удаление по значению:
Есть возможность реализовать, так как задумал?
Через ресурс нет. Либо циклом обходить
-
появился такой вопрос по работе с ресурсами через апи + выполнить код
ищу индекс строки так
[[INDEX_I]] = RMap("Lock").indexOf([[USERNAME]]);в режиме записи все отлично рабоает, но в режиме запуска поток останавливается на этом месте. Как это исправить?
-
@shtorm said in Проверить существование в ресурсе, удаление по значению:
появился такой вопрос по работе с ресурсами через апи + выполнить код
ищу индекс строки так
[[INDEX_I]] = Map("Lock").indexOf([[USERNAME]]);в режиме записи все отлично рабоает, но в режиме запуска поток останавливается на этом месте. Как это исправить?
Приведите код полностью или прикрепите тестовый проект
-
-
@shtorm said in Проверить существование в ресурсе, удаление по значению:
@UserTrue said in Проверить существование в ресурсе, удаление по значению:
RMap
опечатка, исправил
Код корректный, ошибка может быть только если переменная [[USERNAME]] не определена
-
@shtorm said in Проверить существование в ресурсе, удаление по значению:
@Fox разобрался, надо было передавать переменную через параметр асинхронной функции.
правда появилась новая проблема, стало завершаться на строку ниже с условием if
не могу понять че тут уже не так([[INDEX_I]] < 0Ну вы во первых можете прямо в условии ввести полную строку кода. В действии "if":
RMap("Lock").indexOf([[USERNAME]]) < 0а во вторых, ошибка в условии может быть только в одном случае, если переменная [[INDEX_I]] не определена. Попробуйте вывести её значение в лог, до условия
-
@shtorm said in Проверить существование в ресурсе, удаление по значению:
@Fox said in Проверить существование в ресурсе, удаление по значению:
Попробуйте вывести её значение в лог, до условия
нигде ее не определял, но в логе она есть (-1)
+нужно ли ее заранее определять, если она на лету считается?присвоив ей значение вы её и определили, это тоже самое что:
var q = "hello" -
@Fox а почему же if не срабатывает?
логически получается что он не видит переменную [[INDEX_I]], но непонятно как такое может быть.+дописал тестовый пример, там аналогичная конструкция работает (как и должно быть)
пс. счас проверю логи в if
-
@shtorm said in Проверить существование в ресурсе, удаление по значению:
@Fox а почему же if не срабатывает?
логически получается что он не видит переменную [[INDEX_I]], но непонятно как такое может быть.+дописал тестовый пример, там аналогичная конструкция работает (как и должно быть)
пс. счас проверю логи в if
Основная проблема в том, что вы указываете на места, в которых по вашему мнению кроется ошибка, но причина может быть совершенно в другом месте. Самый быстрый способ получить решение проблемы - приложить тестовый скрипт
-
@Fox said in Проверить существование в ресурсе, удаление по значению:
Основная проблема в том, что вы указываете на места, в которых по вашему мнению кроется ошибка, но причина может быть совершенно в другом месте.
согласен, я неправильно определил где не работает, оставался в логах вывод с ID потока, очевидно функция его не знала, там и была остановка.
@Fox said in Проверить существование в ресурсе, удаление по значению:
Самый быстрый способ получить решение проблемы - приложить тестовый скрипт
я уже много (как для себя разного понаписывал), вынес все очень просто в тест, но при этом потерялись всякие функции вложенные/асинхронные, в них и запутался...
+а можно как-то поудалять мои вопросы глупые теперь?)
-
@shtorm said in Проверить существование в ресурсе, удаление по значению:
+а можно как-то поудалять мои вопросы глупые теперь?)
зачем? Поверьте ни чего нет постыдного в вопросах, даже если они и начального уровня. Напротив, человек, который возможно столкнётся с подобной ситуацией, сможет найти для себя ответ
-
@Fox said in Проверить существование в ресурсе, удаление по значению:
Поверьте ни чего нет постыдного в вопросах, даже если они и начального уровня
в любом случае спасибо вам, удалось чето новое для себя узнать. когда не сходил с тропы визуального кодинга было меньше вопросов)
-
This post is deleted!
-
А в каком виде ресурсы типа "из файла" хранятся в памяти? В виде массива или ассоциативного массива? Пытаюсь понять, что быстрее будет:
resource.remove(index); resource.insert(line);или
resource.set(index, line);Если массив, то во втором случае будет O(n). В случае, если ассоциативный, то похер и по ключу вставится - O(1).
С большими файлами прям актуальный вопрос.
P.S. Если в переменную сохранить RMap, то там будет пустой объект js: {}. Так что как там внутри баса реализовано - не понятно.
P.P.S. Если проходить ресурс в обратном порядке:for (var index=resource.length() - 1; index == 0; index--) { resource.remove(index); }, то это будет эквивалентно resource.pop()?
