Перенос значений из списка в таблицу по столбцам

Hannes

Client
Регистрация
03.02.2016
Сообщения
528
Благодарностей
275
Баллы
63
Добрый день!

Подскажите, как решить такую, на первый взгляд простую задачу:

Берется ЗНАЧЕНИЕ, парсится по нему DOM, на выходе получаю список с N кол. строчек. Нужно эти строчки поместить в таблицу в одну строку: ЗНАЧЕНИЕ|Строка1|Строка2|Строка3|... , далее взять второе ЗНАЧЕНИЕ2 и повторить операцию, что бы получилась такая таблица:

ЗНАЧЕНИЕ_1|Строка1|Строка2|Строка3|...
ЗНАЧЕНИЕ_2|Строка1|Строка2|Строка3|...
ЗНАЧЕНИЕ_3|Строка1|Строка2|Строка3|...

Подскажите, пожалуйста, как реализовать такую схему? Кол. спаршенных строк неизвестно и сильно варьируется (от 3 до 30 и более).

Спасибо!
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 130
Баллы
113
C#:
string str = project.Variables["Var"].Value; // переменная со значением
var list = project.Lists["List"]; // список с результатами парсинга DOM
var table = project.Tables["Table"]; // таблица, в которую будут записываться строки

// Сцепляем значение переменной и все элементы списка
string tmp = str + "|" + string.Join("|", list);
lock (SyncObjects.TableSyncer)
{
    // Добавляем полученную строку в таблицу
    table.AddRow(tmp);
    // Очищаем список
    list.Clear();
}
 
Последнее редактирование:
  • Спасибо
Реакции: sentinel и Hannes

Hannes

Client
Регистрация
03.02.2016
Сообщения
528
Благодарностей
275
Баллы
63

BraG.A

Пользователь
Регистрация
05.08.2016
Сообщения
81
Благодарностей
7
Баллы
8
C#:
string str = project.Variables["Var"].Value; // переменная со значением
var list = project.Lists["List"]; // список с результатами парсинга DOM
var table = project.Tables["Table"]; // таблица, в которую будут записываться строки

// Сцепляем значение переменной и все элементы списка
string tmp = str + "|" + string.Join("|", list);
lock (SyncObjects.TableSyncer)
{
    // Добавляем полученную строку в таблицу
    table.AddRow(tmp);
    // Очищаем список
    list.Clear();
}
А каким образом можно такую задачу решить?

Через кубики делаю следующим образом:
Беру строку А0 заношу в переменную String1 ( удалив после взятия), A2 → String2, A3→String3. После чего формирую таблицу и зацикливаю данный процесс. Но все это довольно долго в ПМ обрабатывается.. Хотелось бы найти решение через сниппет.
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 130
Баллы
113
А каким образом можно такую задачу решить?
C#:
var list = project.Lists["List"];
var table = project.Tables["Table"];

lock (SyncObjects.TableSyncer)
{
    int i = 0;
    while (list.Count > 0)
    {
        for (int j = 0; j < 3; j++)
        {
            if (list.Count == 0) break;
            string str = list[0];
            table.SetCell(j, i, str);
            list.RemoveAt(0);
        }
        i++;
    }
}

Но все это довольно долго в ПМ обрабатывается.
Повторюсь, запускай в ZennoPoster'е!
 
  • Спасибо
Реакции: sentinel и BraG.A

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