Добавление слова перед точкой

guloc

Client
Регистрация
12.09.2016
Сообщения
153
Благодарностей
150
Баллы
43
Всем привет помогите с кодом, есть код
Код:
string paragraph = ""; // Исходная строка текста

string text = project.Variables["tekst"].Value; //переменная от куда берётся текст

string key = project.Variables["key"].Value; //переменная, где хранятся ключи

// Преобразуем строку в массив с разделением по точка + пробел
string[] array = text.Split(new[] { "." }, StringSplitOptions.RemoveEmptyEntries);

// Проходим получившийся массив в цикле
for (int i = 0; i < array.Length; i++)
{
// Если последняя строка, то прервываем цикл
if (i >= array.Length - 1)
{
paragraph += array[i];
break;

}
else
{
paragraph += array[i];

// Если CountForkey элемент массива == текущему, то добавляем ключ перед новым абзацем
if ((i + 1) % int.Parse(project.Variables["CountForkey"].Value) == 0) //переменная, где хранится число, после которого ставить ключ
{// указываем через переменную после какой точки вставлять ключ
paragraph += " " + key + " ";
}

paragraph += ".";
}
}
return paragraph;
Он добавляет ключевое слово в тексте перед определённой точкой, но не могу понять как подключить список из которого будут браться рандомно данные ключи и подставлятся перед точками, помогите разобраться. Сейчас он добавляет только один и тот же ключ, а задача чтобы он добавлял рандомные ключи из файла, перед определённой точкой.
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113
C#:
string paragraph = ""; // Исходная строка текста

string text = project.Variables["tekst"].Value; //переменная от куда берётся текст

IZennoList Keys_List = project.Lists["Keys_List"]; //список, где хранятся ключи
string key = ""; // Исходная строка ключа
Random rnd = new Random(); // Новая случайность
int Keys_List_Count = Keys_List.Count; // узнаем количество строк списка

// Преобразуем строку в массив с разделением по точка + пробел
string[] array = text.Split(new[] { "." }, StringSplitOptions.RemoveEmptyEntries);

// Проходим получившийся массив в цикле
for (int i = 0; i < array.Length; i++)
{
    // Если последняя строка, то прервываем цикл
    if (i >= array.Length - 1)
    {
        paragraph += array[i];
        break;
       
    }
    else
    {
        paragraph += array[i];
       
        // Если CountForkey элемент массива == текущему, то добавляем ключ перед новым абзацем
        if ((i + 1) % int.Parse(project.Variables["CountForkey"].Value) == 0) //переменная, где хранится число, после которого ставить ключ
        {// указываем через переменную после какой точки вставлять ключ
            // но сначала берем случайных ключ из списка:
            int IndexRand = rnd.Next(0,Keys_List_Count); // ищем случайный номер в пределах количества строк списка
            key = Keys_List[IndexRand];    // берем строку по этому номеру (случайную)       
            paragraph += " " + key;
        }
       
        paragraph += ".";
    }
}
return paragraph;
Добавил нужное и изменил "paragraph += " " + key + " ";", а то оно там лишний пробел в конце ставило.
 
  • Спасибо
Реакции: one и guloc

guloc

Client
Регистрация
12.09.2016
Сообщения
153
Благодарностей
150
Баллы
43
C#:
string paragraph = ""; // Исходная строка текста

string text = project.Variables["tekst"].Value; //переменная от куда берётся текст

IZennoList Keys_List = project.Lists["Keys_List"]; //список, где хранятся ключи
string key = ""; // Исходная строка ключа
Random rnd = new Random(); // Новая случайность
int Keys_List_Count = Keys_List.Count; // узнаем количество строк списка

// Преобразуем строку в массив с разделением по точка + пробел
string[] array = text.Split(new[] { "." }, StringSplitOptions.RemoveEmptyEntries);

// Проходим получившийся массив в цикле
for (int i = 0; i < array.Length; i++)
{
    // Если последняя строка, то прервываем цикл
    if (i >= array.Length - 1)
    {
        paragraph += array[i];
        break;
      
    }
    else
    {
        paragraph += array[i];
      
        // Если CountForkey элемент массива == текущему, то добавляем ключ перед новым абзацем
        if ((i + 1) % int.Parse(project.Variables["CountForkey"].Value) == 0) //переменная, где хранится число, после которого ставить ключ
        {// указываем через переменную после какой точки вставлять ключ
            // но сначала берем случайных ключ из списка:
            int IndexRand = rnd.Next(0,Keys_List_Count); // ищем случайный номер в пределах количества строк списка
            key = Keys_List[IndexRand];    // берем строку по этому номеру (случайную)      
            paragraph += " " + key;
        }
      
        paragraph += ".";
    }
}
return paragraph;
Добавил нужное и изменил "paragraph += " " + key + " ";", а то оно там лишний пробел в конце ставило.
Спасибо заработало, а не подскажешь вот с этим кодом
Код:
string paragraph = ""; // Исходная строка текста
string text = project.Variables["tekst"].Value; //переменная от куда берётся текст
IZennoList Keys_List = project.Lists["Заголовки"]; //список, где хранятся ключи
string key = ""; // Исходная строка ключа
Random rnd = new Random(); // Новая случайность
int Keys_List_Count = Keys_List.Count; // узнаем количество строк списка
// Преобразуем строку в массив с разделением по точка + пробел
string[] array = text.Split(new[] { "." }, StringSplitOptions.RemoveEmptyEntries);
// Проходим получившийся массив в цикле
for (int i = 0; i < array.Length; i++)
{
    // Если последняя строка, то прервываем цикл
    if (i >= array.Length - 1)
    {
        paragraph += array[i];
        break;
       
    }
    else
    {
        paragraph += array[i];
       
      // Если CountForHeadline элемент массива == текущему, то добавляем заголовок перед новым абзацем
if ((i + 1) % int.Parse(project.Variables["CountForHeadline"].Value) == 0) //переменная, где хранится число, после которого ставить заголовок
{// указываем через переменную после какой точки вставлять заголовок


            // но сначала берем случайных ключ из списка:
            int IndexRand = rnd.Next(0,Keys_List_Count); // ищем случайный номер в пределах количества строк списка
            key = Keys_List[IndexRand];    // берем строку по этому номеру (случайную)     
           paragraph += Environment.NewLine;
paragraph += Keys_List;
paragraph += Environment.NewLine;
        }
       
        paragraph += ".";
    }
}
return paragraph;
Он добавляет заголовок после определённой точки, сделал код, но он почему то, в тех местах где должны быть заголовки пишет следующее:
ZennoLab.TemplateManipulator.V4.ComponentBlocks.ListV4
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113
Ответьте что по вашему делает эта строка в коде:
Код:
paragraph += Keys_List;
Подумайте где в ней ошибка, и исправьте самостоятельно. Если не получится, то подскажу потом.
 
  • Спасибо
Реакции: guloc

guloc

Client
Регистрация
12.09.2016
Сообщения
153
Благодарностей
150
Баллы
43
Ответьте что по вашему делает эта строка в коде:
Код:
paragraph += Keys_List;
Подумайте где в ней ошибка, и исправьте самостоятельно. Если не получится, то подскажу потом.
Спасибо разобрался)
 

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