string paragraph = "";
// Исходная строка текста
string text = "Вдруг раздвинулось пространство. Отметая постоянство, Изменений целый ворох – Перемены все так скоры. После долгой зимней спячки Взбудоражен мир весной. Реку больше лед не прячет, Все журчит, снега - долой. Ветры теплые звенели, Мир был новым для меня В первом том моем апреле. Стала частью мира я. Я разглядывала небо, Облака и тополя. Стала явью эта небыль. Мир разглядывал меня.";
// Преобразуем строку в массив с разделением по точка + пробел
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] + ".";
// Если 5 элемент массива, то добавляем два переноса строки (т.е. новый абзац)
if ((i+1)%5 == 0)
paragraph += Environment.NewLine + Environment.NewLine;
else
paragraph += " ";
}
// Возвращаем отформатированный по абзацам текст
return paragraph;
Не работает заменил текст на переменную пишет ошибка в строке 2 столбец 35 и 40 именно где и переменная с текстом, что не правильно делаю?Код:string paragraph = ""; // Исходная строка текста string text = "Вдруг раздвинулось пространство. Отметая постоянство, Изменений целый ворох – Перемены все так скоры. После долгой зимней спячки Взбудоражен мир весной. Реку больше лед не прячет, Все журчит, снега - долой. Ветры теплые звенели, Мир был новым для меня В первом том моем апреле. Стала частью мира я. Я разглядывала небо, Облака и тополя. Стала явью эта небыль. Мир разглядывал меня."; // Преобразуем строку в массив с разделением по точка + пробел 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] + "."; // Если 5 элемент массива, то добавляем два переноса строки (т.е. новый абзац) if ((i+1)%5 == 0) paragraph += Environment.NewLine + Environment.NewLine; else paragraph += " "; } // Возвращаем отформатированный по абзацам текст return paragraph;
А подскажи как в настройках указать через какое количество точек делать абзац если я заменяю код :Код:string paragraph = ""; // Исходная строка текста string text = "Вдруг раздвинулось пространство. Отметая постоянство, Изменений целый ворох – Перемены все так скоры. После долгой зимней спячки Взбудоражен мир весной. Реку больше лед не прячет, Все журчит, снега - долой. Ветры теплые звенели, Мир был новым для меня В первом том моем апреле. Стала частью мира я. Я разглядывала небо, Облака и тополя. Стала явью эта небыль. Мир разглядывал меня."; // Преобразуем строку в массив с разделением по точка + пробел 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] + "."; // Если 5 элемент массива, то добавляем два переноса строки (т.е. новый абзац) if ((i+1)%5 == 0) paragraph += Environment.NewLine + Environment.NewLine; else paragraph += " "; } // Возвращаем отформатированный по абзацам текст return paragraph;
if ((i+1)%5 == 0)
if ((i+1)%project.Variables["tochka"].Value == 0)
Значение переменной нужно привести к intА подскажи как в настройках указать через какое количество точек делать абзац если я заменяю код :
НаКод:if ((i+1)%5 == 0)
То код не работает как сделать чтоб можно из настроек регулировать количество точек?Код:if ((i+1)%project.Variables["tochka"].Value == 0)
if ((i+1) % int.Parse(project.Variables["tochka"].Value) == 0)
Этот сниппет делит текст на абзацы с одинаковым количеством предложений в каждом абзаце. Как сделать, чтобы количество предложений в абзацах было рандомным? Например, от двух до четырех предложений в каждом.Код:string paragraph = ""; // Исходная строка текста string text = "Вдруг раздвинулось пространство. Отметая постоянство, Изменений целый ворох – Перемены все так скоры. После долгой зимней спячки Взбудоражен мир весной. Реку больше лед не прячет, Все журчит, снега - долой. Ветры теплые звенели, Мир был новым для меня В первом том моем апреле. Стала частью мира я. Я разглядывала небо, Облака и тополя. Стала явью эта небыль. Мир разглядывал меня."; // Преобразуем строку в массив с разделением по точка + пробел 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] + "."; // Если 5 элемент массива, то добавляем два переноса строки (т.е. новый абзац) if ((i+1)%5 == 0) paragraph += Environment.NewLine + Environment.NewLine; else paragraph += " "; } // Возвращаем отформатированный по абзацам текст return paragraph;
Это я понимаю. Не понимаю как реализовать, не работаю с C#.вот вместо этой 5 -ки, надо проставить рандом от 2-х, до 5-ти.
Это я понимаю. Не понимаю как реализовать, не работаю с C#.
string paragraph = "";
// Исходная строка текста
string text = "Вдруг раздвинулось пространство. Отметая постоянство, Изменений целый ворох – Перемены все так скоры. После долгой зимней спячки Взбудоражен мир весной. Реку больше лед не прячет, Все журчит, снега - долой. Ветры теплые звенели, Мир был новым для меня В первом том моем апреле. Стала частью мира я. Я разглядывала небо, Облака и тополя. Стала явью эта небыль. Мир разглядывал меня.";
// Преобразуем строку в массив с разделением по точка + пробел
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] + ".";
Random r = new Random();
int randomNumber = r.Next(2, 5);
// Если 5 элемент массива, то добавляем два переноса строки (т.е. новый абзац)
if ((i+1) % randomNumber == 0)
paragraph += Environment.NewLine + Environment.NewLine;
else
paragraph += " ";
}
// Возвращаем отформатированный по абзацам текст
return paragraph;
В одном тексте все абзацы получаются с одинаковым количеством предложений. Рандом получается между текстами, а не между абзацами одного текста. То есть в одном тексте все абзацы имеют по два предложения, при следующей генерации все абзацы в тексте состоят из четырех предложений.C#:string paragraph = ""; // Исходная строка текста string text = "Вдруг раздвинулось пространство. Отметая постоянство, Изменений целый ворох – Перемены все так скоры. После долгой зимней спячки Взбудоражен мир весной. Реку больше лед не прячет, Все журчит, снега - долой. Ветры теплые звенели, Мир был новым для меня В первом том моем апреле. Стала частью мира я. Я разглядывала небо, Облака и тополя. Стала явью эта небыль. Мир разглядывал меня."; // Преобразуем строку в массив с разделением по точка + пробел 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] + "."; Random r = new Random(); int randomNumber = r.Next(2, 5); // Если 5 элемент массива, то добавляем два переноса строки (т.е. новый абзац) if ((i+1) % randomNumber == 0) paragraph += Environment.NewLine + Environment.NewLine; else paragraph += " "; } // Возвращаем отформатированный по абзацам текст return paragraph;
Возможно разбивать на рандомное количество предложений в одном тексте?
int min = 2;//int.Parse(project.Variables["var1"].Value);//минимум предложений в абзаце
int max = 7;//int.Parse(project.Variables["var2"].Value);//максимум предложений в абзаце
string text = project.Variables["text"].Value;
string split = ". ";
List<string> list = text.Split(new[]{split}, StringSplitOptions.RemoveEmptyEntries).ToList();
List<string> result = new List<string>();
while(list.Count > 0){
List<string> temp = new List<string>();
int random = new Random((int)DateTime.Now.Ticks).Next(min, max+1);
if(list.Count <= max && list.Count >= min)
random = list.Count;
for(int i = 0; i < random && i < list.Count; i++){
temp.Add(list[i]);
list.RemoveAt(0);
}
result.Add(string.Format(@"{0}.", string.Join(split, temp)));
}
return string.Join(string.Format(@"{0}{0}", Environment.NewLine), result);