Вставка ключевиков в текст

Aleks7487

Новичок
Регистрация
11.11.2016
Сообщения
12
Благодарностей
0
Баллы
1
Добрый день.
Подскажите пожалуйста, беру текст из файла (от 4000 до 9000 знаков).
Задача вставить в него ключевые слова, через каждые 200-500 символов.
Как это можно сделать?

Знаю что задача довольно простая, но что-то не могу понять как это сделать.
 

etyipin

Client
Регистрация
15.12.2017
Сообщения
95
Благодарностей
34
Баллы
18
Код:
var keys = project.Lists["keys"];
int min = 200; // минимальное кол-во слов, после которых вставлять ключи
int max = 500; // максимальное кол-во слов

string[] words;
string result = null;
Random rnd = new Random();
int r = rnd.Next(min, max);

    words = str1.Split(' ');
    for (int i = 0; i < words.Length; i++) {
        if (i == r) {
            result += keys.GetItem("random1(1-end)") + " " + words[i] + " ";
            r = r + rnd.Next(min, max);
        }
        else
            result += words[i] + " ";
    }
    str1 = result.Trim();
 
  • Спасибо
Реакции: nokia09132 и Aleks7487

Aleks7487

Новичок
Регистрация
11.11.2016
Сообщения
12
Благодарностей
0
Баллы
1
Код:
var keys = project.Lists["keys"];
int min = 200; // минимальное кол-во слов, после которых вставлять ключи
int max = 500; // максимальное кол-во слов

string[] words;
string result = null;
Random rnd = new Random();
int r = rnd.Next(min, max);

    words = str1.Split(' ');
    for (int i = 0; i < words.Length; i++) {
        if (i == r) {
            result += keys.GetItem("random1(1-end)") + " " + words[i] + " ";
            r = r + rnd.Next(min, max);
        }
        else
            result += words[i] + " ";
    }
    str1 = result.Trim();
Это в каком экшене использовать?
 

etyipin

Client
Регистрация
15.12.2017
Сообщения
95
Благодарностей
34
Баллы
18
C# код
 
  • Спасибо
Реакции: Aleks7487

Aleks7487

Новичок
Регистрация
11.11.2016
Сообщения
12
Благодарностей
0
Баллы
1
Почему-то после добавления данного кода проект "ломается".
В логе отображается (Компиляция кода Ошибка в действии "CS103" "Имя "str1" отсутствует в текущем контексте". [Строка: 9; Столбец: 13]).

Пробовал другой код: (Как пример, просто проверить работоспособность)
var length = new System.IO.FileInfo(@"C:\img.png").Length;
return length;
Работает корректно.

Ещё подскажите где должен содержаться текст для обработки, в переменной? Если да, то в какой (имею ввиду имя переменной, т.к. исходя из кода не понятно, как данный сниппет узнает какой текст ему обработать и откуда взять ключи).
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
через каждые 200-500 знаков или слов? текст берется из списка или много файлов с текстами?
 

etyipin

Client
Регистрация
15.12.2017
Сообщения
95
Благодарностей
34
Баллы
18
Настройки кубика должны быть такими
upload_2018-8-10_10-0-20.png


В начале кода добавьте строку var str1 = project.Variables["en_text"].Value;
Должно получиться так
Код:
var str1 = project.Variables["en_text"].Value; //Переменная с текстом
var keys = project.Lists["keys"]; //список ключей
int min = 200; // минимальное кол-во слов, после которых вставлять ключи
int max = 500; // максимальное кол-во слов
Для возврата результата в конец добавьте строку
Код:
return str1;
Таким образом для выполнения кода у вас в проекте должен быть заполненый список с именем "keys", текст должен лежать в переменной "en_text". Названия можно поменять.

Как заметили выше, мой код вставляет ключи через 200-500 слов, а не символов. Можете уменьшить значения чтоб примерно попадало под ваши требования.
 

Aleks7487

Новичок
Регистрация
11.11.2016
Сообщения
12
Благодарностей
0
Баллы
1
Настройки кубика должны быть такими
Посмотреть вложение 31332

В начале кода добавьте строку var str1 = project.Variables["en_text"].Value;
Должно получиться так
Код:
var str1 = project.Variables["en_text"].Value; //Переменная с текстом
var keys = project.Lists["keys"]; //список ключей
int min = 200; // минимальное кол-во слов, после которых вставлять ключи
int max = 500; // максимальное кол-во слов
Для возврата результата в конец добавьте строку
Код:
return str1;
Таким образом для выполнения кода у вас в проекте должен быть заполненый список с именем "keys", текст должен лежать в переменной "en_text". Названия можно поменять.

Как заметили выше, мой код вставляет ключи через 200-500 слов, а не символов. Можете уменьшить значения чтоб примерно попадало под ваши требования.
Спасибо, нужный эффект почти достигнут. Подскажите пожалуйста ещё как сделать чтобы первое ключевое слово вставлялось среди первых 3-5 слов, а уже остальные остались как в приведенном вами примере?
 

Aleks7487

Новичок
Регистрация
11.11.2016
Сообщения
12
Благодарностей
0
Баллы
1
через каждые 200-500 знаков или слов? текст берется из списка или много файлов с текстами?
Через каждые 200-500 знаков (но чтобы слова не резались посередине), текст берется из переменной, ключи берутся из списка. И еще нужно чтобы первое ключевое слово вставлялось в начале (в первых 3-5 словах).
 

nokia09132

Новичок
Регистрация
01.12.2018
Сообщения
1
Благодарностей
0
Баллы
1
Тоже нужна такая программа, только не могу запустить.
 

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