Вставка ключевых слов в текстовку

Nakus

Client
Регистрация
28.09.2013
Сообщения
156
Благодарностей
33
Баллы
28
Привет!
Подскажите как можно реализовать?
Например имеем два файла, в одном список ключевых слов, а во втором текст. Нужно вставлять ключевое слово в определенное место в тексте, пример:

{Шла|Бежала} {Маша|Серафима} {увидела|заметила} {Keyword} и закричала мне повезло, я нашла {Keyword} ...
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
Брать ключ из списка и использовать экшен Операции с текстом - Замена
 

kz_webmaster

Client
Регистрация
02.01.2013
Сообщения
237
Благодарностей
19
Баллы
18
С "я нашла {Keyword} ..." - здесь все понятно. ищешь текст по принципу "начинается с" и "заканчивается" и через Операции с текстом заменяешь на "я нашла (переменная) ...

А с {увидела|заметила} {Keyword} и закричала - здесь в два этапа. Сначала ищешь фразу со словом "увидела", если не нашлось, то тогда со вторым словом...
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
Или просто иметь текст с макросами заранее и заменять макрос {Keyword}, если он есть в тексте на переменную с кеем.
 

blud

Client
Регистрация
19.04.2011
Сообщения
657
Благодарностей
77
Баллы
28
а можно я чуть усложню вопрос ТСа:
есть текстовка (оч. много мег.) шаблон должен из этого файла взять рандомный блок/строку, и в зависимости от количества символов/слов в строке/блоке раскидать по этому тексту энное количество ключевых фраз.
вопрос: как реализовать? (если можно то поподробней)

пы.сы. если нельзя по подробней, то хотя бы: как определить количество символов в строке? или слов в строке?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 276
Благодарностей
9 057
Баллы
113
  • Спасибо
Реакции: blud

blud

Client
Регистрация
19.04.2011
Сообщения
657
Благодарностей
77
Баллы
28
определить длину строки можно с помощью js:
Код:
var string = '{-Variable.a444-}';
  var result = string.length;
вот отсюда взял:
http://zennolab.com/discussion/threads/kak-poluchit-dlinu-stroki.11803/

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

и еще : парсим строку на наличие определенного слова (этих слов в строке несколько) ... как получить количество совпадений при парсинге?
 

7make

Client
Регистрация
25.06.2011
Сообщения
1 547
Благодарностей
1 311
Баллы
113

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 7make какие-либо сделки.

С# снипет вернет кол-во слов в тексте/строке
C#:
//кол-во слов = кол-во пробелов + 1

var text = project.Variables["text"].Value.ToCharArray();
int count = 1;
foreach(var ch in text)
{
    if(ch==' ')
    {
        count++;
    }
}
return count;
 
  • Спасибо
Реакции: blud и Sergodjan

blud

Client
Регистрация
19.04.2011
Сообщения
657
Благодарностей
77
Баллы
28
С# снипет вернет кол-во слов в тексте/строке
C#:
//кол-во слов = кол-во пробелов + 1

var text = project.Variables["text"].Value.ToCharArray();
int count = 1;
foreach(var ch in text)
{
    if(ch==' ')
    {
        count++;
    }
}
return count;
простите ... я никогда не пользовался C# ибо небыло надобности..... как использовать это? куда вставить сам текст?

сорри ... разобрался ...)))))
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113

Sergodjan

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

blud

Client
Регистрация
19.04.2011
Сообщения
657
Благодарностей
77
Баллы
28
Экшен C# код
В приведенном примере статья лежит в переменной text
http://gyazo.com/201206d569f95b87a07fa600fc580a41.png
спасибо ... уже разобрался ...оч. интересует другое: (дублирую ранее заданый вопрос) парсим строку на наличие определенного слова (этих слов в строке несколько) ... как получить количество совпадений при парсинге?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
В C# не знаю, стандартными экшенами - спарсить, положить в список, посчитать количество слов в списке.
 
  • Спасибо
Реакции: blud

blud

Client
Регистрация
19.04.2011
Сообщения
657
Благодарностей
77
Баллы
28
хех.... я делаю тоже самое только в файл .... думал есть попроще решение ... но все равно спасибо
 

7make

Client
Регистрация
25.06.2011
Сообщения
1 547
Благодарностей
1 311
Баллы
113

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 7make какие-либо сделки.

С# снипет определяет кол-во вхождений подстроки в строке

C#:
var text = project.Variables["text"].Value;
var substr = project.Variables["substr"].Value;
int i = 0;
int x = -1;
int count = -1;
while(i != -1)
{
    i = text.IndexOf(substr, x+1);
    x = i;
    count++;
}
return count;
и еще один вариант C# снипета который вернет кол-во слов в тексте

C#:
var text = project.Variables["text"].Value;
return Macros.TextProcessing.Split(text," ","all").Count()+1;
 
Последнее редактирование:
  • Спасибо
Реакции: blud

blud

Client
Регистрация
19.04.2011
Сообщения
657
Благодарностей
77
Баллы
28
еще вопрос(правда не совсем в тему) но неохота топик создавать... итак: можно ли в шаблоне менять название переменной?? тоесть ... предположим... есть переменная raz... цикл закрученый на увеличении счетчика counter.. нужно, что бы при каждом прохождении цикла изменялось название переменной: raz{-Variable.counter-} возможно такое?? и если да то как?
в идеале нужно, что бы после прохождения цикла .. было несколько переменных: raz, raz1, raz2, и т.д.....
 

7make

Client
Регистрация
25.06.2011
Сообщения
1 547
Благодарностей
1 311
Баллы
113

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 7make какие-либо сделки.

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

blud

Client
Регистрация
19.04.2011
Сообщения
657
Благодарностей
77
Баллы
28
для чего такой изврат в логике работы проекта?
напиши что нужно получить, суть задачи.
а суть: текстовка... при прохождении цикла из нее берется блок, обрабатывается и помещается в переменную raz, нужно сделать N проходов цикла и получить N блоков обработанного текста... далее ... есть текстовый файл(эдакая заготовка сообщения) в котором в определенных местах есть макросы: {-Variable.raz-}, {-Variable.raz1-}, {-Variable.raz2-}..и т.д. шаблон берет этот файл... блоки обработанного текста встают на свое место и постится сообщение....

пы сы. если можете предложить другой алгоритм для данной задачи .. буду только рад
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
Как то вы нестандартно пошли в обработке текстов...
Может лучше сделать 20 переменных и потом брать их?
 

blud

Client
Регистрация
19.04.2011
Сообщения
657
Благодарностей
77
Баллы
28
Как то вы нестандартно пошли в обработке текстов...
Может лучше сделать 20 переменных и потом брать их?
а вы представьте как будет выглядеть проект если обработать 20 переменных(один цикл состоит из 15-20 зкшнов)... запутаюсь нафик...)))))))))

пы. сы .. хотя если чесно ... я уже решил эту задачу ... не через переменные а через временный файл ...
 

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