Логика на 100+ возможных вариантов. Как?

Polina

Client
Регистрация
29.05.2015
Сообщения
37
Благодарностей
1
Баллы
8
Прошу помочь как правильнее сделать.
Шаблон заходит на страницу, ищет по регулярке и результат кладёт в переменную var1.
Есть список, где строки имеют формат varN:stringN. Надо чтобы в зависимости от полученного var1 шаблон заходил в список, находил свою varN и забирал stringN в другую переменную. Городить свитч прямо в шаблоне на 100 вариантов мне кажется идея не хорошая.

Сопутствующий вопрос: как искать непосредственно в нужном html-элементе на странице, а не по всей странице? Брать сначала кусок исходного кода в переменную, а с него уже искать искомое?

Спасибо.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
объедини список в строку. Из этой строки регуляркой вытащи stringN
 

Polina

Client
Регистрация
29.05.2015
Сообщения
37
Благодарностей
1
Баллы
8
А что изменится тогда?
ZP залезет в файл, найдёт там var1 в строке var1:string1 (или общей строке var1:string1 var2:string2 как вы предлагаете), но как сделать так, чтобы взялось из файла string1 ?
 

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 596
Благодарностей
1 014
Баллы
113
Зависит от того что потом будите делать?
99.9% логика крива )
 

zennoX

Client
Регистрация
05.04.2014
Сообщения
484
Благодарностей
134
Баллы
43
А что изменится тогда?
ZP залезет в файл, найдёт там var1 в строке var1:string1 (или общей строке var1:string1 var2:string2 как вы предлагаете), но как сделать так, чтобы взялось из файла string1 ?
Изначально все это дело в список, привязанный к файлу.

при поиске "найдёт там var1 в строке var1:string1"
берет строку var1:string1 в переменную, регуляркой выпарсивает из переменной значение после разделителя : или после "var1:" в новую переменную variable.string
 
  • Спасибо
Реакции: Polina

Polina

Client
Регистрация
29.05.2015
Сообщения
37
Благодарностей
1
Баллы
8
Изначально все это дело в список, привязанный к файлу.
Так и сделано.
Только непонятно как из списка сделать поиск по regex, в экшенах "операции над списком" и "обработка текста" такого не вижу. Пока знаю вариант загрузки всего содержимого в переменную и поиск уже из неё, но это не правильно, полагаю
Подскажите?
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
Пока знаю вариант загрузки всего содержимого в переменную и поиск уже из неё, но это не правильно, полагаю
Подскажите?
Все верно! Либо C# сниппет
C#:
var list = project.Lists["List"]; // список varN:stringN
string str = project.Variables["Var"].Value; // переменная Var

lock (SyncObjects.ListSyncer)
{
    for(int i = 0; i < list.Count; i++)
    {
        if (list[i].Split(':')[0] == str)
            return list[i].Split(':')[1];
    }
}
throw new Exception("Не найдено!");
 
  • Спасибо
Реакции: Polina

Polina

Client
Регистрация
29.05.2015
Сообщения
37
Благодарностей
1
Баллы
8
Спасибо большое, работает. Даже и с выборкой сразу - не надо var1: отделять :-)
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)