Создание списка через код

Czerdo

Client
Регистрация
24.06.2020
Сообщения
77
Благодарностей
12
Баллы
8
Добрый день. Подскажите, пожалуйста, каким способом создать списки через код?

Путь ->В список
{-Project.Directory-}text1.txt -> text1
{-Project.Directory-}text2.txt -> text2
{-Project.Directory-}text3.txt -> text3

Характеристика размещения:
"Сохранять изменения списка в файл" и "Оставлять файл пустой".

Заранее спасибо.
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 788
Благодарностей
2 453
Баллы
113
Добрый день. Подскажите, пожалуйста, каким способом создать списки через код?

Путь ->В список
{-Project.Directory-}text1.txt -> text1
{-Project.Directory-}text2.txt -> text2
{-Project.Directory-}text3.txt -> text3

Характеристика размещения:
"Сохранять изменения списка в файл" и "Оставлять файл пустой".

Заранее спасибо.
Вы действительно хотите, чтобы Зеннопостер внутри шаблона в многопоточном режиме генерировал новые списки, которые должны быть доступны для каждого потока?

Если нужно все же просто в разные списки добавлять строчки, то это делается как-то так:
C#:
project.Lists["list1"].Add("text1");
project.Lists["list2"].Add("text2");
project.Lists["list3"].Add("text3");
Естественно, прежде в шаблоне создаются эти списки с привязкой к файлам.
 

Czerdo

Client
Регистрация
24.06.2020
Сообщения
77
Благодарностей
12
Баллы
8
Вы действительно хотите, чтобы Зеннопостер внутри шаблона в многопоточном режиме генерировал новые списки, которые должны быть доступны для каждого потока?
Однопоток. Суть шаблона: публикация контента в разные паблики. Сколько тематик - столько и списков. Количество тематик периодически меняется. Шаблон запускается по таймеру с паузой в 30 минут.

Задача:
Публикации в периодически меняющейся сетке без редактирования шаблона для добавления списков. Файл с ID площадок и именем списков уже есть и работает. Подобным образом хочу и создавать списки (каждый раз, с каждым запуском).

99482

99483
 

Czerdo

Client
Регистрация
24.06.2020
Сообщения
77
Благодарностей
12
Баллы
8
Если нужно все же просто в разные списки добавлять строчки, то это делается как-то так:
C#:
project.Lists["list1"].Add("text1");
project.Lists["list2"].Add("text2");
project.Lists["list3"].Add("text3");
Естественно, прежде в шаблоне создаются эти списки с привязкой к файлам.
Желательно имея путь к файлу создавать списки. Без предварительной привязки.

Upd:
Будет создаваться список с именем тематики, с нужным характеристиками, с каждым запуском шаблона.
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 788
Благодарностей
2 453
Баллы
113
Желательно имея путь к файлу создавать списки. Без предварительной привязки.

Upd:
Будет создаваться список с именем тематики, с нужным характеристиками, с каждым запуском шаблона.
Просто читайте файлы и пишите изменения обратно.
Вместо пути можно использовать переменные.
C#:
var list = File.ReadAllLines(@"C:\text.txt").ToList(); // Прочитать файл
// что-то с ним сделать...

File.WriteAllLines(@"C:\text.txt", list); // Записать все строчки (например уже измененные) обратно в файл
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 518
Благодарностей
3 370
Баллы
113
Можно использовать глобальные переменные, а в них помещать List.
 

Czerdo

Client
Регистрация
24.06.2020
Сообщения
77
Благодарностей
12
Баллы
8
Как читать - понятно. Не понял как создавать списки, давать им имена и наполнять.

И можно ли как-то создать сразу 10-15 списков с именами тематик? На каждую тематику есть свой текстовый документ.

Дальше просто буду брать рандомную строку из каждого списка.

C#:
// СПИСОК - взять рандомно строку с удалением

var list = project.Lists[project.Variables["Board_name"].Value];
Random rnd = new Random();
lock (SyncObjects.ListSyncer) {
    int r = rnd.Next(list.Count);
    project.Variables["ID_page"].Value = list[r];
    // Удаление строки
    list.RemoveAt(r); // удаление взятой строки
}
Площадки периодически меняются. Какие-то удаляются, какие-то добавляются. Нужно создавать списки под актуальную сетку публикаций перед каждым запуском шаблона.
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 518
Благодарностей
3 370
Баллы
113
Не понял как создавать списки, давать им имена и наполнять.
Нельзя создавать списки постера в рантайме - только заранее.

А вообще, вам стоит использовать базу данных.
 
  • Спасибо
Реакции: Czerdo

Czerdo

Client
Регистрация
24.06.2020
Сообщения
77
Благодарностей
12
Баллы
8
Нельзя создавать списки постера в рантайме - только заранее.

А вообще, вам стоит использовать базу данных.
Кстати, точно. А то все построено на блокнотах.

Просто читайте файлы и пишите изменения обратно.
Вместо пути можно использовать переменные.
C#:
var list = File.ReadAllLines(@"C:\text.txt").ToList(); // Прочитать файл
// что-то с ним сделать...

File.WriteAllLines(@"C:\text.txt", list); // Записать все строчки (например уже измененные) обратно в файл
А Вам огромное спасибо. Благодаря Вашим сообщения уже очень много выучил и освоил.
 

Czerdo

Client
Регистрация
24.06.2020
Сообщения
77
Благодарностей
12
Баллы
8
Пробежался по теме создания и использования БД. Пока сложно, но я освою.

Конкретно в текущей задаче решение нашлось максимально простое и на кубиках постера. Может кому и пригодится.

1) Читаем файл с площадками и ID. Добавляем в список "Площадки";
2) Из файла берем строку с тематикой и ID и разделяем на переменные Тематики и ID;
3) Читаем файл с контентом в имени которого есть наименование тематики и добавляем в список "Контент";
4) Берем рандомную строку из списка "Контект";
5) Сохраняем список в файл тематики;
6) Очищаем список и переходим к сл. площадке.

Как итог: не нужно плодить списки и залезать в шаблон при добавлении или удалении площадок.

99487
 

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