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

  • Автор темы Автор темы Polina
  • Дата начала Дата начала

Polina

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

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

Спасибо.
 
А что изменится тогда?
ZP залезет в файл, найдёт там var1 в строке var1:string1 (или общей строке var1:string1 var2:string2 как вы предлагаете), но как сделать так, чтобы взялось из файла string1 ?
 
Зависит от того что потом будите делать?
99.9% логика крива )
 
А что изменится тогда?
ZP залезет в файл, найдёт там var1 в строке var1:string1 (или общей строке var1:string1 var2:string2 как вы предлагаете), но как сделать так, чтобы взялось из файла string1 ?
Изначально все это дело в список, привязанный к файлу.

при поиске "найдёт там var1 в строке var1:string1"
берет строку var1:string1 в переменную, регуляркой выпарсивает из переменной значение после разделителя : или после "var1:" в новую переменную variable.string
 
  • Оценить
Реакции: Polina
Изначально все это дело в список, привязанный к файлу.
Так и сделано.
Только непонятно как из списка сделать поиск по regex, в экшенах "операции над списком" и "обработка текста" такого не вижу. Пока знаю вариант загрузки всего содержимого в переменную и поиск уже из неё, но это не правильно, полагаю
Подскажите?
 
Пока знаю вариант загрузки всего содержимого в переменную и поиск уже из неё, но это не правильно, полагаю
Подскажите?
Все верно! Либо 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
Спасибо большое, работает. Даже и с выборкой сразу - не надо var1: отделять :)
 

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