Поиск по списку C#

Kinomanius

Активный пользователь
Регистрация
20.01.2020
Сообщения
184
Благодарностей
26
Баллы
28
Приветствую! Не раз уже натыкался на подобные темы, но везде вижу что кубики или C# сниппеты работают с уже объявленными списками проекта.
55507

Проблема в том, что я задаю список не совсем корректно, и возможно ZP его просто не видит.
Происходит это так {-Project.Directory-}TEST\{-Variable.test-}.txt
Наличие списка в папке проверял , всё ок, как только подключаю всё стандартным способом, а именно {-Project.Directory-}TEST\asdasd.txt всё работает как надо.
Теперь суть вопроса, может кто знает где найти C# код для того чтобы тот искал текст из переменной в списке? Ну и просто выдавал 1 если нашёл или 0 если не нашёл, но так чтобы список объявлять в переменную в качестве пути к файлу.
Может сложно описал процесс, объясню на примерах , например тут

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


Список задаётся уже из существующих ( на скрине выше чёрным прямоугольником выделил ) , а хотелось бы чтоб это было примерно так

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


Сам в С# мало понимаю, может знает кто или на форуме видел подобное
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
C#:
var check = project.Variables["имя переменной из проекта"].Value;
var list = project.Variables["Имя переменной с именем списка"];
list.Bind(@"c:\test.txt"); // подсоединение файла к списку
return list.IndexOf(check); // - вернёт номер строки, если она есть, или -1, если строки нет.
 
  • Спасибо
Реакции: Kinomanius

Kinomanius

Активный пользователь
Регистрация
20.01.2020
Сообщения
184
Благодарностей
26
Баллы
28
C#:
var check = project.Variables["имя переменной из проекта"].Value;
var list = project.Variables["Имя переменной с именем списка"];
list.Bind(@"c:\test.txt"); // подсоединение файла к списку
return list.IndexOf(check); // - вернёт номер строки, если она есть, или -1, если строки нет.
Не совсем понял как работает ваш код, он почему то выдаёт ошибку.
Ещё раз расскажу подробнее что искал, может я сам чего не так изложил.
Имеется папка проекта - ZPproject, в ней папка TEST, в папке 5 списков test1, test2.... test5, при подключении перебираю я их номера с помощью переменной test.
В стандартном снипете списка делал так {-Project.Directory-}TEST\{-Variable.test-}.txt
Так вот мне нужно исходя из имени переменной(test) между ними(test1, test2.... test5) переключаться, а ещё в каждом из этих списков искать определённое слово.
У вас в коде я сделал так


var check = project.Variables["slova"].Value; // (123123)
var list = project.Variables["spisokname"]; // (SPISOK) [Я если что создал этот список на панели, это нужно было делать?
55513
]

list.Bind(@"\ZPproject\TEST\" + project.Variables["test"].Value + ".txt"); // подсоединение файла к списку | (test1)
return list.IndexOf(check); // - вернёт номер строки, если она есть, или -1, если строки нет.

Где у меня в переменной slova - 123123 ; spisokname - SPISOK ; test - test1.

Ну и соответственно в списке test1 у меня имееются данные
123123
222222
333333
44444

В итоге код не выполняется, что делаю не так?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
путь должен быть полным. с диска начинаться
C#:
var check = project.Variables["slova"].Value; // (123123)
var spisokname= project.Variables["spisokname"];
var list = project.Lists[spisokname];
list.Bind(@"\ZPproject\TEST\" + project.Variables["test"].Value + ".txt"); // подсоединение файла к списку | (test1)
return list.IndexOf(check); // - вернёт номер строки, если она есть, или -1, если строки нет.
 
  • Спасибо
Реакции: Kinomanius

Kinomanius

Активный пользователь
Регистрация
20.01.2020
Сообщения
184
Благодарностей
26
Баллы
28
путь должен быть полным. с диска начинаться
C#:
var check = project.Variables["slova"].Value; // (123123)
var spisokname= project.Variables["spisokname"];
var list = project.Lists[spisokname];
list.Bind(@"\ZPproject\TEST\" + project.Variables["test"].Value + ".txt"); // подсоединение файла к списку | (test1)
return list.IndexOf(check); // - вернёт номер строки, если она есть, или -1, если строки нет.
Благодарю работает, ещё поинтересуюсь, дайте ответ если у вас есть время конечно, а как например реализовать чтобы на выходе получить такое
return list.IndexOf(check); // - напишет 1 если она есть, или 0, если строки нет.[/CODE]
 

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