Как значения переменной вставить в обработку текста?

art22

Client
Регистрация
24.06.2016
Сообщения
484
Благодарностей
69
Баллы
28
Добрый день друзья. Как значения переменной вставить в обработку текста?

есть список, в нем одинаковые номера в начале. при обработке одинаковые номера надо в один ряд сделать через запятую. 11_док19.doc, 11_док15.doc, 11_док12.doc...
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
Добрый день друзья. Как значения переменной вставить в обработку текста?

есть список, в нем одинаковые номера в начале. при обработке одинаковые номера надо в один ряд сделать через запятую. 11_док19.doc, 11_док15.doc, 11_док12.doc...
upload_2018-8-6_15-48-38.png
 
  • Спасибо
Реакции: cooki и art22

art22

Client
Регистрация
24.06.2016
Сообщения
484
Благодарностей
69
Баллы
28
Немного не так поняли, в списке разные значения... в начале идет 4 цифры _ потом слова...Да и таким способом соединяет все что находиться в списке, а надо объединить только одинаковые числа в начале

смотрите скрин...
1) получаем первую строку
2) Удаляем все после 4 цифр (номер добавляем в новую переменную для сравнения.) основная переменная нам нужна для соединения через запятую
3) Сравниваем с номером который нам известен., если совпадает то записываем его.
4) удаляем данную строку.
5) запускаем по новой... пока не соберет все номера. после каждого цыкла надо чтобы через запятую они сохранились.

Потом определенные действия с данной переменной 11_док19.doc, 11_док15.doc, 11_док12.doc...

Затем все по новой....но будет работать другим номером...2222,3333...

п.с. сам смысл алгоритма, разослать несколько видов документов людям, одному человеку 2-4 документа...
 

Вложения

  • 81,7 КБ Просмотры: 27
Последнее редактирование:

art22

Client
Регистрация
24.06.2016
Сообщения
484
Благодарностей
69
Баллы
28
Просто нужно, в одну переменную вставить несколько значении через запятую...
 

art22

Client
Регистрация
24.06.2016
Сообщения
484
Благодарностей
69
Баллы
28
Пришлось создать еще один список, в список записать нужные данные и объединить их. Потом все сначала...

Жаль нет функции в обработке текста, объединить значения переменной, не пришлось лишние списки создавать
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113

art22

Client
Регистрация
24.06.2016
Сообщения
484
Благодарностей
69
Баллы
28
Или что то другое нужно?
Переменная одна, а в данном примере 2 переменной, если создать для каждого по 1 переменной они могут достигнуть до 8 переменных, а это геморой. и большой код...

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

В парсере датакол называется статическое поле, собирает данные в одно поле для каждого товара...
 

Alex733

Client
Регистрация
27.11.2017
Сообщения
330
Благодарностей
243
Баллы
43
Код:
//  project.Variables["mylongvar"].Value;
string mylongvar = "11,22,33";
string[] arr = mylongvar.Split(',');
// что ищем project.Variables["elm"].Value;
string elm = "33";
// Признак добавления значения в переменную
bool isadded = false;
if (Array.IndexOf(arr, elm)<0) {
    mylongvar += ","+elm;
project.Variables["mylongvar"].Value = mylongvar;
    isadded = true;
}
return isadded;
 

art22

Client
Регистрация
24.06.2016
Сообщения
484
Благодарностей
69
Баллы
28

Alex733

Client
Регистрация
27.11.2017
Сообщения
330
Благодарностей
243
Баллы
43
Закоментированные строчки (2 слеша в начале) содержат ваши переменные, которые нужно переименовать и подставлять вместо "придуманных" значений. В настройках c# кубика поставить галку возвращать значение. Переменная isadded будет содержать признак добавления данных в вашу переменную.
Т.е. ваш код для C# кубика будет выглядеть приблизительно так:
Код:
// Здесь ложим значение из вашей переменной,
// в переменную C#
string mylongvar = project.Variables["mylongvar"].Value;
// Разбиваем строку на массив по разделителю запятая ','
string[] arr = mylongvar.Split(',');
// что ищем 
string elm = project.Variables["elm"].Value;
// Признак добавления значения в переменную
bool isadded = false;
if (Array.IndexOf(arr, elm)<0) {
// если искомых данных нет, добавляем в конец переменной
    mylongvar += ","+elm;
// и сохраняем в перменной проекта новое значение
project.Variables["mylongvar"].Value = mylongvar;
    isadded = true;
}
return isadded;
И в зависимости от результата работы этого кубика, строить логику дальше. Если isadded == true, то можно отправлять почту (или что ли бо еще делать), если false, то переходим к проверке следующего куска данных.
 

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