Помогите со сниппетом для форматирования текста

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
Привет.

Имеем некий текст, не форматированный, надо его привести в читабельный вид....

Дано:
1й этап

Код:
тут какой-то текст тут какой-то текст тут какой-то текст
тут кусок
тут
тут какой-то текст тут какой-то текст
тут какой-то текст
тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст
тут еще
тут какой-то текст тут какой-то текст тут какой-то текст
тут кусок
тут
тут какой-то текст тут какой-то текст
тут какой-то текст
тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст
тут еще
тут какой-то текст тут какой-то текст тут какой-то текст
тут кусок
тут
тут какой-то текст тут какой-то текст
тут какой-то текст
тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст
тут еще
тут какой-то текст тут какой-то текст тут какой-то текст
тут кусок
тут
тут какой-то текст тут какой-то текст
тут какой-то текст
тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст
тут еще
тут какой-то текст тут какой-то текст тут какой-то текст
тут кусок
тут
тут какой-то текст тут какой-то текст
тут какой-то текст
тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст
тут еще
тут какой-то текст тут какой-то текст тут какой-то текст
тут кусок
тут
тут какой-то текст тут какой-то текст
тут какой-то текст
тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст
тут еще
тут какой-то текст тут какой-то текст тут какой-то текст
тут кусок
тут
тут какой-то текст тут какой-то текст
тут какой-то текст
тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст
тут еще
тут какой-то текст тут какой-то текст тут какой-то текст
тут кусок
тут
тут какой-то текст тут какой-то текст
тут какой-то текст
тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст
тут еще
тут какой-то текст тут какой-то текст тут какой-то текст
тут кусок
тут
тут какой-то текст тут какой-то текст
тут какой-то текст
тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст
тут еще
конец
2й этап

Код:
тут какой-то текст тут какой-то текст тут какой-то текст тут кусок тут тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут еще тут какой-то текст тут какой-то текст тут какой-то текст тут кусок тут тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут еще тут какой-то текст тут какой-то текст тут какой-то текст тут кусок тут тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут еще тут какой-то текст тут какой-то текст тут какой-то текст тут кусок тут тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут еще тут какой-то текст тут какой-то текст тут какой-то текст тут кусок тут тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут еще тут какой-то текст тут какой-то текст тут какой-то текст тут кусок тут тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут еще тут какой-то текст тут какой-то текст тут какой-то текст тут кусок тут тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут еще тут какой-то текст тут какой-то текст тут какой-то текст тут кусок тут тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут еще тут какой-то текст тут какой-то текст тут какой-то текст тут кусок тут тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут еще конец

3й этап
Код:
тут какой-то текст тут какой-то текст тут какой-то текст тут кусок тут тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут еще тут какой-то текст тут какой-то текст тут какой-то текст тут кусок тут тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то

текст тут какой-то текст тут какой-то текст тут какой-то текст тут еще тут какой-то текст тут какой-то текст тут какой-то текст тут кусок тут тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут еще тут какой-то текст тут какой-то текст тут какой-то текст тут кусок тут тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут еще тут какой-то текст тут какой-то текст тут какой-то текст тут кусок тут тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут

какой-то текст тут какой-то текст тут еще тут какой-то текст тут какой-то текст тут какой-то текст тут кусок тут тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут еще тут какой-то текст тут какой-то текст тут какой-то текст тут кусок тут тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут еще тут какой-то текст тут какой-то текст тут какой-то текст тут кусок тут тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то


текст тут еще тут какой-то текст тут какой-то текст тут какой-то текст тут кусок тут тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут какой-то текст тут еще конец
Как я вижу все действия по пунктам
1. сначала удаляем все переносы строк, чтоб не было слитых слов, ставим пробелы
2. разбиваем весь текст на абзацы, тут желательно делать абзац в рандомном ключе, например абзац будет делаться через каждые (рандомное чило от и да) слов...
сниппет рандомит число от и до и после этого делает абзац, после первого абзаца, рандомит и делает второй и тд.

чтоб по итогу получилось вот такое - http://dl3.joxi.net/drive/2018/09/28/0011/3379/724275/75/8fc18d1917.jpg

спасибо
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
В проекте, на момент запуска этого снипета, должно существовать 3 переменные:
1. words_count_from - минимальное кол-во слов в абзаце.
2. words_count_to - максимальное кол-во слов в абзаце.
3. text - в этой переменной должен быть исходный текст.

В настройках сниппета надо будет указать куда записывать итоговый результат. Результат - это строки, разделённые символом новой строки.
C#:
int words_count_from = Convert.ToInt32(project.Variables["words_count_from"].Value);
int words_count_to = Convert.ToInt32(project.Variables["words_count_to"].Value);

List<string> words = project.Variables["text"].Value.Split(new string[]{"\n", "\r\n", " "}, StringSplitOptions.RemoveEmptyEntries).ToList();

var paragraphes = new List<string>();
Random rnd = new Random();

while(words.Count > 0)
{
   int count = rnd.Next(words_count_from, words_count_to);
   if (words.Count <= count)
   {
     paragraphes.Add(String.Join(" ", words));
     break;
   }
   
   paragraphes.Add(
    String.Join(" ", words.GetRange(0, count))
   );
   words.RemoveRange(0, count);
}

return String.Join(Environment.NewLine, paragraphes);
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
Спасибо, работает.

Как сделать чтобы абзац начинался с новой строки через строку?

сейчас идет так
Код:
текст текст текст текст текст текст
текст текст текст текст текст текст текст текст
текст текст текст текст текст текст
текст текст текст текст текст текст текст текст
текст текст текст текст текст текст
текст текст текст текст текст текст текст текст
надо так
Код:
текст текст текст текст текст текст
текст текст текст текст текст текст текст текст
текст текст текст текст текст текст

текст текст текст текст текст текст текст текст
текст текст текст текст текст текст
текст текст текст текст текст текст текст текст
 
Последнее редактирование:

SoUp1

Client
Регистрация
15.09.2013
Сообщения
145
Благодарностей
47
Баллы
28
return String.Join(Environment.NewLine, paragraphes);
заменит на
return String.Join(Environment.NewLine + Environment.NewLine, paragraphes);
 
  • Спасибо
Реакции: backoff и nicanil

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
не то, мне надо чтоб абзацы разделялись строкой, а не каждая строка отдельно
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
не то, мне надо чтоб абзацы разделялись строкой, а не каждая строка отдельно
SoUp1 правильно подсказывал решение. После работы снипета каждая строка представляет собой отдельный абзац.
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
на примере

имеем это - http://joxi.ru/KAx9lV1SM3o7or
надо получить это - http://joxi.ru/L21bEvkF8eoY1A

надо чтоб не каждую строку разбивало, а просто была пустая строка перед созданием абзаца


хотя сорян.. все верно... протупил.. то что надо!
спасибо

у меня просто текстовый файл растянут на весь моник, и получается что просто тупо по строчкам разбито :-) когда сжал появились абзацы )))))))
да, и так бывает )
 
Последнее редактирование:
  • Спасибо
Реакции: nicanil

obyavkaby

Client
Регистрация
26.05.2017
Сообщения
187
Благодарностей
17
Баллы
18
Здравствуйте подскажите, есть текст с переносами
Натуральный питательный коктейль BODY COMPLIMENT это первый абсолютно натуральный заменитель питания. Благодаря своему сбалансированному составу он позволяет легко заменять один-два приема пищи в день, обеспечивая организм всем необходимым и долгое время поддерживая чувство сытости, хотя энергетическая ценность одной порции не превышает 210 ккал.

ВНИМАНИЕ! Данный продукт является полностью натуральным и не содержит:
сахара и мальтодекстрина
внесенных извне витаминов и минеральных веществ
ароматизаторов и красителей
консервантов
синтетических пищевых волокон (ксантана)
пальмового масла и сухих жиров на его основе
разрыхлителей и антислеживающих веществ
белков сои и гороха
ингредиентов с кодом Е.

НЕ ЖДИТЕ ПРИВЫЧНОГО ПРИТОРНОГО ВКУСА И РЕЗКОГО ИСКУССТВЕННОГО АРОМАТА!
Чувство сытости за счет белка каппа-казеина, который отличается полноценным, но медленным усвоением, натуральных пищевых волокон оболочек семян подорожника, а также бета-глюканов овса, обладающих способностью быстро разбухать в желудке, создавая чувство насыщения. Кроме того, пищевые волокна и лактулоза способствуют восстановлению и поддержанию нормальной микрофлоры, что очень важно в условиях ограниченного питания.
Жиросжигающий эффект благодаря высокому содержанию пищевых волокон и лактулозы, снижающих усвоение жиров и углеводов, съедаемых во время основных приемов пищи, а также карнитину, имбирю и момордике, непосредственно активизирующих обмен веществ.
Сбалансированный состав коктейль в оптимальных пропорциях обеспечивает организм большинством витаминов, минеральных веществ и пищевых волокон, содержание которых в пище резко падает при переходе на ограниченное питание. При этом все эти питательные вещества являются полностью натуральными ингредиентами природных компонентов данного продукта.

как убрать переносы и сделать одним сплошным текстом ?
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113

Sergodjan

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

obyavkaby

Client
Регистрация
26.05.2017
Сообщения
187
Благодарностей
17
Баллы
18
Что тоне вышло, если копирую текст вставленный выше как пример , текст редактируется, а если из екселя то нет.

Прикрепил архив шаблон и ексель
 

Вложения

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
Что тоне вышло, если копирую текст вставленный выше как пример , текст редактируется, а если из екселя то нет.

Прикрепил архив шаблон и ексель
У вас в шаблоне нет процедуры замены перевода строк:

upload_2018-10-24_18-51-10.png
 

obyavkaby

Client
Регистрация
26.05.2017
Сообщения
187
Благодарностей
17
Баллы
18
извиняюсь не тот шаблон закинул
 

Вложения

Sergodjan

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

obyavkaby

Client
Регистрация
26.05.2017
Сообщения
187
Благодарностей
17
Баллы
18
Спасибо.
 

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