Поиск замена

Vadim Plisko

Новичок
Регистрация
30.09.2017
Сообщения
10
Благодарностей
0
Баллы
1
Всем спривет сопланетчики, возник вопрос:
При парсинге страницы у нас в переменную записывается город, а их как вы понимаете не мало,нам надо сделать следующее -> город заменить на ID. Подскажите как это проще сделать. Внимание вопрос: Если мы получаем город, например, Москва как нам пробежатся по списку поиска замены и при совпадении сохранить это в переменную.

Буду признателен за любую информацию.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 649
Благодарностей
4 618
Баллы
113
можно объединить список в переменную и из неё уже выпарсить составленной по городу регуляркой. Можно в цикле обойти список и искать совпадение
 

Vadim Plisko

Новичок
Регистрация
30.09.2017
Сообщения
10
Благодарностей
0
Баллы
1
А можно поподробнее про цикл? где можно про это почитать или посмотреть.
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 224
Баллы
113
Подробнее про циклы в рамках Zenno тут.
Посмотреть можно обучающее видео от @rostonix
Где то тут в поиске завалялось.
 

Vadim Plisko

Новичок
Регистрация
30.09.2017
Сообщения
10
Благодарностей
0
Баллы
1
можно объединить список в переменную и из неё уже выпарсить составленной по городу регуляркой. Можно в цикле обойти список и искать совпадение
Это чуть чуть другое, унас на выходе получается один город, например Москва, и нам это значение надо заменить скажем из списка 40 городов и подставить числовое значение, на следующей странице может быть и Саратов, Питер и т.д и у каждого свой ID
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 224
Баллы
113
Это чуть чуть другое, унас на выходе получается один город, например Москва, и нам это значение надо заменить скажем из списка 40 городов и подставить числовое значение, на следующей странице может быть и Саратов, Питер и т.д и у каждого свой ID
Приведите пример. Чтобы не нужно было домысливать. Думаю, ваша задача решается элементарно.
 

Vadim Plisko

Новичок
Регистрация
30.09.2017
Сообщения
10
Благодарностей
0
Баллы
1
Приведите пример. Чтобы не нужно было домысливать. Думаю, ваша задача решается элементарно.
Я думаю да, пример:
Город 1 -> ИД 32
Город 2 -> ИД 48
Город 3 -> ИД 16
Когда при парсиге страницы мы находим Город 2, надо значение этой переменной поменять на 48 если находим Город 1 то менять на 32 и так далее
 
Последнее редактирование:

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 224
Баллы
113
Я думаю да, пример:
Город 1 -> ИД 32
Город 2 -> ИД 48
Город 3 -> ИД 16
Когда при парсиге страницы мы находим Город 2, надо значение этой переменной поменять на 48
Создайте список соответствий, или таблицу (список, в данном случае, будет работать быстрее), в котором пропишите названия городов с цифровыми идентификаторами через разделитель. Для того чтобы получить идентификатор нужно всего лишь извлечь из списка строку по совпадению, и извлечь из нее сплитом или регуляркой идентификатор.
Например так:
upload_2017-10-1_12-24-18.png

Код:
List<string> list = new List<string>();
list.Add("Город 1:ИД 32");
list.Add("Город 2:ИД 48");
list.Add("Город 3:ИД 16");
var matchrow = list.FindAll(x => x.IndexOf(project.Variables["City"].Value, StringComparison.OrdinalIgnoreCase) != -1);
string[] split = matchrow.First().Split(':');
return (split[1]);
Оригинал кода поиска по списку взят отсюда.

Вывод: поиск рулит!
 
Последнее редактирование:
  • Спасибо
Реакции: Vadim Plisko

Vadim Plisko

Новичок
Регистрация
30.09.2017
Сообщения
10
Благодарностей
0
Баллы
1
Спасибо буду пробовать отпишусь по результатам.
 

Vadim Plisko

Новичок
Регистрация
30.09.2017
Сообщения
10
Благодарностей
0
Баллы
1
Код:
List<string> list = new List<string>();
list.AddRange(project.Lists["Города"]);
string myString = project.Variables["City_var"].Value;
var matchingvalues = list.FindAll(x => x.IndexOf(myString, StringComparison.OrdinalIgnoreCase) != -1);
string[] split = matchingvalues.First().Split('|');
return (split[1]);
Отлично все сработало, создал файл с городами и подключил его к списку. Спасибо вам гуру
 

Vadim Plisko

Новичок
Регистрация
30.09.2017
Сообщения
10
Благодарностей
0
Баллы
1
Вот только как мне это значение положить в переменную проекта. Что то я с C# не дружу
 

Vadim Plisko

Новичок
Регистрация
30.09.2017
Сообщения
10
Благодарностей
0
Баллы
1
Паника была прежде времени оказалось все очень просто
Код:
return project.Variables["City_var"].Value=(split[1]);
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 224
Баллы
113
Благодарность здесь принято выражать, нажимая "Спасибо" под полезным сообщением :-)
 
  • Спасибо
Реакции: xatabich10

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