Проверка наличия переменной в списке

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

Andron

Client
Регистрация
08.04.2015
Сообщения
222
Реакции
10
Баллы
18
Подскажите как сделать проверку наличия переменной в списке? Нашел скрипт, но там вроде нельзя указать переменную. Только конкретное значение.

  1. var url = project.Variables["url"].Value;
  2. var check = project.Lists["List"];
  3. return check.Contains(url);
 
Подскажите как сделать проверку наличия переменной в списке? Нашел скрипт, но там вроде нельзя указать переменную. Только конкретное значение.

  1. var url = project.Variables["url"].Value;
  2. var check = project.Lists["List"];
  3. return check.Contains(url);
Не понятно что вы делаете. Переменной не может быть в списке, туда могут только складываться ее значения.... Для чего вам нужна такая проверка?
 
Последнее редактирование:
return check.Contains("имя переменной");
 
Не понятно что вы делаете. Переменной не может быть в списке, туда могут только складываться ее значения.... Для чего вам нужна такая проверка?
Я делаю парсер текстов. Результат парсинга складывается в текстовый файл. Мне нужно проверить есть ли уже в этом списке данный текст, что бы не было дублей.
 
Я делаю парсер текстов. Результат парсинга складывается в текстовый файл. Мне нужно проверить есть ли уже в этом списке данный текст, что бы не было дублей.
Может проще очищать дубли после парсинга? - Операции со списком>Очистить дубли.
 
  • Оценить
Реакции: Andron
Спасибо. Уже разобрался.
А искать вообще так:

var check = project.Variables["имя переменной из проекта"].Value;
var list = project.Lists["Название списка, в котором ищем"];
return list.IndexOf(check); // - вернёт номер строки, если она есть, или -1, если строки нет.
 
А искать вообще так:

var check = project.Variables["имя переменной из проекта"].Value;
var list = project.Lists["Название списка, в котором ищем"];
return list.IndexOf(check); // - вернёт номер строки, если она есть, или -1, если строки нет.

Этот вариант хорошо работает. Спасибо.

А как сделать, чтобы искало частичное вхождение строки?
Допустим у меня в строке, кроме переменной ещё есть дополнительная информация.
И нужно найти номер этой строки, такое возможно?
 
По прежнему актуально.
У кого-нибудь есть мысли как получить номер строки содержащей определенный текст?

Например:
Нужно найти "Яблоки зелёные*"

Список:
Яблоки, красные вкусные
Яблоки зелёные свежие 7р.
Яблоки отборные 10р.

Результат: строка "Яблоки зелёные свежие 7р." или её номер.
 
По прежнему актуально.
У кого-нибудь есть мысли как получить номер строки содержащей определенный текст?

Например:
Нужно найти "Яблоки зелёные*"

Список:
Яблоки, красные вкусные
Яблоки зелёные свежие 7р.
Яблоки отборные 10р.

Результат: строка "Яблоки зелёные свежие 7р." или её номер.
var check = project.Variables["имя переменной из проекта"].Value;
var list = project.Lists["Название списка, в котором ищем"];
for (int i=0; i<list.Count; i++)
{
if (list.Contains(check))
{
return i;
}
}
return "нет такой строки";
 
Последнее редактирование:
  • Оценить
Реакции: blinkO_o
var check = project.Variables["имя переменной из проекта"].Value;
var list = project.Lists["Название списка, в котором ищем"];
for (int i=0; i<list.Count; i++)
{
if (list.Contains(check))
{
return i;
}
}
return "нет такой строки";

К сожалению не получилось =(

При поиске части строки, возвращает "нет такой строки".
А когда ищу всю строку, то в любом случае возвращает 0.
 
К сожалению не получилось =(

При поиске части строки, возвращает "нет такой строки".
А когда ищу всю строку, то в любом случае возвращает 0.
Попробуйте так, почему то не весь код вставило в прошлый раз
Код:
Развернуть Свернуть Копировать
var check = project.Variables["имя переменной из проекта"].Value;
var list = project.Lists["Название списка, в котором ищем"];
for (int i=0; i<list.Count; i++)
{
if (list[i].Contains(check))
{
return i;
}
}
return "нет такой строки";
 
  • Оценить
Реакции: Alexander I и Zvizdunov
а список привязан к файлу ?
 
Попробуйте так, почему то не весь код вставило в прошлый раз
Код:
Развернуть Свернуть Копировать
var check = project.Variables["имя переменной из проекта"].Value;
var list = project.Lists["Название списка, в котором ищем"];
for (int i=0; i<list.Count; i++)
{
if (list[i].Contains(check))
{
return i;
}
}
return "нет такой строки";

а что поправил ?? вроде два кода одинаковы
2017-03-07_230838.png
 
Попробуйте так, почему то не весь код вставило в прошлый раз
Код:
Развернуть Свернуть Копировать
var check = project.Variables["имя переменной из проекта"].Value;
var list = project.Lists["Название списка, в котором ищем"];
for (int i=0; i<list.Count; i++)
{
if (list[i].Contains(check))
{
return i;
}
}
return "нет такой строки";

Спасибо огромное.
Так работает =)

Ты просто сделал мой день ;-)
 
код не правильно работает

2017-03-07_231711.png


если определять строку чтобы вывести то она третья, это для програмирования она на втором месте
 
а что поправил ?? вроде два кода одинаковы
Посмотреть вложение 19004
нет, не одинаковые. Первый код как то рагульно вставился текстом. Потом я редактировал второй, может ты скопировал до редактирования.
Там ошибка в первом, из-за того что криво вставился - не хватает индекса для строки из списка, во втором она есть. Там где if
 
нет, не одинаковые. Первый код как то рагульно вставился текстом. Потом я редактировал второй, может ты скопировал до редактирования.
Там ошибка в первом, из-за того что криво вставился - не хватает индекса для строки из списка, во втором она есть. Там где if
я уже заметил поправку, просто я раньше скопировал чем ты изменил
 
код не правильно работает

Посмотреть вложение 19005

если определять строку чтобы вывести то она третья, это для програмирования она на втором месте
ну кому нужно - пусть добавляет +1. А если он потом использует этот номер чтобы дальше взять эту строку по номеру, то как раз надо нормальный порядковый номер
 
ну кому нужно - пусть добавляет +1. А если он потом использует этот номер чтобы дальше взять эту строку по номеру, то как раз надо нормальный порядковый номер
тоже верно
 
код не правильно работает

Посмотреть вложение 19005

если определять строку чтобы вывести то она третья, это для програмирования она на втором месте
Да, спасибо за наводку =)

Этот момент я сразу протестил и заметил.
В итоге следующим экшеном увеличил номер переменной со строкой на 1 .
 
Да, спасибо за наводку =)

Этот момент я сразу протестил и заметил.
В итоге следующим экшеном увеличил номер переменной со строкой на 1 .

C#:
Развернуть Свернуть Копировать
var check = project.Variables["response"].Value;

for (int i = 0; i<list.Count; i++)
{
    if (list[i].Contains(check))
    {
        return ++i;
    }
}

return "нет такой строки";
 
  • Оценить
Реакции: luk911 и Zvizdunov
А кто может подсказать по обратной задачи? есть список слов и есть перемененная нужно проверить содержит ли переменая слово из списка?
т.е список
яблоки
груша
Переменная
груша это фрукт - вернутся да
Груша и яблоки это полезно - вернется да
Яблоки это фрукты - вернется нет
 
А кто может подсказать по обратной задачи? есть список слов и есть перемененная нужно проверить содержит ли переменая слово из списка?
т.е список
яблоки
груша
Переменная
груша это фрукт - вернутся да
Груша и яблоки это полезно - вернется да
Яблоки это фрукты - вернется нет

а почему обратная задача ?
чем это не подходит ?
замени просто некоторые строки, при нахождении напиши да, если не нашёл то нет

P.S. только обратил внимание, а что свежей ветку не нашёл ?
 
Если брать скрипт из примера выше то не работает (потому что выше ищет переменную в списке), нашел ответ тут
http://zennolab.com/discussion/thre...predelennogo-teksta-v-stroke-iz-spiska.13923/
))) местами сравнение заменить не судьба

всего то делов чтобы не просить лишний раз мелочь какую то
сам вопрос говорит что задача в обратном порядке

C#:
Развернуть Свернуть Копировать
var check = project.Variables["response"].Value;
for (int i = 0; i < list.Count; i++)
{
    if (check.Contains(list[i]))
    {
        return "да";
    }
}
return "нет";
 
Последнее редактирование:
  • Оценить
Реакции: stanar
))) местами сравнение заменить не судьба
И как будет выглидить? я думал об этом но не смог сообразить как. Тестирую скрипт то что нашел что то не очень работает.
 
Твой
var list = project.Lists["Текст тем"];

var check = project.Variables["Variable13"].Value;
for (int i = 0; i < list.Count; i++)
{
if (check.Contains(list))
{
return "да";
}
}
return "нет";

Лучше работает.
 

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