petrvitaminov
Client
- Регистрация
- 16.05.2016
- Сообщения
- 8
- Благодарностей
- 0
- Баллы
- 1
Спасибо!!Код C#
Из списка "Answers" берёт строку с переменной "Question".Код:List<string> list = new List<string>(); list.AddRange(project.Lists["Answers"]); string myString = project.Variables["Question"].Value; var matchingvalues = list .FindAll(x => x.IndexOf(myString, StringComparison.OrdinalIgnoreCase) != -1); return matchingvalues.First();
а можно такое же прмиенить, но для таблиц?Код C#
Из списка "Answers" берёт строку с переменной "Question".Код:List<string> list = new List<string>(); list.AddRange(project.Lists["Answers"]); string myString = project.Variables["Question"].Value; var matchingvalues = list .FindAll(x => x.IndexOf(myString, StringComparison.OrdinalIgnoreCase) != -1); return matchingvalues.First();
var list1 = project.Lists["list1"]; // здесь ищем
var list2 = project.Lists["list2"]; // сюда складируем
for(int i=0; i<list1.Count; i++){
if ( list1[i].Contains("строка") == true )
list2.Add(list1[i]);
}
Как получить все строки с вхождением?
IZennoList list = project.Lists["List"];
string str = project.Variables["text"].Value;
return string.Join("\r\n", list.Where(x => x.Contains(str)).Select(x => x));
Получить первую строку таблицы, содержащую текста можно такое же прмиенить, но для таблиц?
подскажите пож-ста код..
IZennoTable table = project.Tables["Table"];
string str = project.Variables["text"].Value;
string row;
for (int i = 0; i < table.RowCount; i++) {
row = string.Concat(table.GetRow(i));
if (row.Contains(str)) {
//table.DeleteRow(i); i--; // раскомментировать, если строку нужно брать с удалением
return row;
}
}
IZennoTable table = project.Tables["Table"];
string str = project.Variables["text"].Value;
List<string> tmpList = new List<string>();
string row;
for (int i = 0; i < table.RowCount; i++) {
row = string.Concat(table.GetRow(i));
if (row.Contains(str)) {
//table.DeleteRow(i); i--; // раскомментировать, если строки нужно брать с удалением
tmpList.Add(row);
}
}
return string.Join("\r\n", tmpList);
а подскажите, если делаю в цикле, то у меня результаты выполнения этого кода накапливаются. я сохраняю результат выполнения в переменную, потом записываю ее в текстовый файл. иду на следующий круг, беру другое слово, ищу совпадения и строки следующего круга, добавляются к предыдущему результату. А мне это не надо, надо каждый круг, чистые результаты. Как очистить предыдущий результат выполнения кубика. ?C#:IZennoList list = project.Lists["List"]; string str = project.Variables["text"].Value; return string.Join("\r\n", list.Where(x => x.Contains(str)).Select(x => x));
А как добавить выход по невозможности найти?
- IZennoTable table = project.Tables["Table"];
- string str = project.Variables["text"].Value;
- string row;
- for (int i = 0; i < table.RowCount; i++) {
- row = string.Concat(table.GetRow(i));
- if (row.Contains(str)) {
- //table.DeleteRow(i); i--; // раскомментировать, если строку нужно брать с удалением
- return row;
- }
- }
А можно как-то сделать с удалением строки из списка?Код C#
Из списка "Answers" берёт строку с переменной "Question".Код:List<string> list = new List<string>(); list.AddRange(project.Lists["Answers"]); string myString = project.Variables["Question"].Value; var matchingvalues = list .FindAll(x => x.IndexOf(myString, StringComparison.OrdinalIgnoreCase) != -1); return matchingvalues.First();
спасибо, рабочий код!Код C#
Из списка "Answers" берёт строку с переменной "Question".Код:List<string> list = new List<string>(); list.AddRange(project.Lists["Answers"]); string myString = project.Variables["Question"].Value; var matchingvalues = list .FindAll(x => x.IndexOf(myString, StringComparison.OrdinalIgnoreCase) != -1); return matchingvalues.First();
Никакой ошибки или баг нет.Опция очень нужная и полезная. Но есть небольшой баг. Если производить поиск строки по слову которое прописано с большой буквы, при том что в строках списка это же слово будет прописано с маленькой буквы, то в списке ничего не находит и в переменную результат заходит нулевой. Пофиксите, пожалуйста.
Ещё забыл. Было бы неплохо ещё сделать вот так:
Это можно уже сейчас сделать, правда добавить надо пару экшенов и один список.Мне бы хотелось чтоб брало случайную строку из списка имеющую определённый текст. Тобиш если в списке много строк в которых есть искуемое слово. Чтоб брало эти строки, при каждом запросе, рандомно.
Как вариант - добавляйте не слово, а выражение. Например, " на ".Подскажите пожалуйста, как получить строку содержащую точное слово
к Примеру: у меня взялось автоматом слово "на", потом по этому слову происходит поиск строк в таблице и в результат добавляются "наш" "наверх" "белизна", а нужно что бы брались строки в которых есть конкретное слово "на"( ну тапа строка в которой написано "пойти на улицу").
Спасибо!!!
модификатор \b в рег. выраженияхПодскажите пожалуйста, как получить строку содержащую точное слово
к Примеру: у меня взялось автоматом слово "на", потом по этому слову происходит поиск строк в таблице и в результат добавляются "наш" "наверх" "белизна", а нужно что бы брались строки в которых есть конкретное слово "на"( ну тапа строка в которой написано "пойти на улицу").
Спасибо!!!
Меняете на "Удовлетворяющие регулярному выражению" и заменяете запрос поиска на варианты:А как это применить здесь?
Посмотреть вложение 54382
подскажите пожалуйста как исправить код , взять строку не содержащюю текст?Код C#
Из списка "Answers" берёт строку с переменной "Question".Код:List<string> list = new List<string>(); list.AddRange(project.Lists["Answers"]); string myString = project.Variables["Question"].Value; var matchingvalues = list .FindAll(x => x.IndexOf(myString, StringComparison.OrdinalIgnoreCase) != -1); return matchingvalues.First();