- Регистрация
- 04.04.2010
- Сообщения
- 266
- Благодарностей
- 138
- Баллы
- 43
Добрый день всем!
Хочу сделать подобие универсального парсена контента для доров. Нашел на форуме несколько подходящих кусков кода на СиШарпе. Беру "как есть" - работает, но выглядят блоки не совсем так, как хотелось бы. Чуток меняю код - все ломается и не работает. Помогите, братья (и сестры).
Шаблон во вложении. Никаких доп файлов нет. Работает так:
- проходит по 3 источникам (случайные выбираем);
- собирает текст;
- чистит, убирает короткие строчки;
- разделяет на блоки (для дальнейшего использования).
И вот на этом этапе все ломается!
Вот код, который я взял на этом форуме:
В исходном варианте было 0,800 и другая регулярка. Но тогда куски контента иногда брались слишком маленькие и не всегда с начала предложения (вроде бы). Пытаюсь ставить 300,800 и пр., и ВСЕ, блоки не нарезаются.
Я в C# не шарю, так что разобраться сложно. Может контента исходного не хватает? Или в этом блоке можно только 0,[max] указывать?
И чтобы отдельно не спрашивать, подскажите еще, что значит эта строка?
Это количество блоков, которые будут созданы в списке?
Заранее спасибо за ответы. И отдельное спасибо автору этого кода!
Хочу сделать подобие универсального парсена контента для доров. Нашел на форуме несколько подходящих кусков кода на СиШарпе. Беру "как есть" - работает, но выглядят блоки не совсем так, как хотелось бы. Чуток меняю код - все ломается и не работает. Помогите, братья (и сестры).
Шаблон во вложении. Никаких доп файлов нет. Работает так:
- проходит по 3 источникам (случайные выбираем);
- собирает текст;
- чистит, убирает короткие строчки;
- разделяет на блоки (для дальнейшего использования).
И вот на этом этапе все ломается!
Вот код, который я взял на этом форуме:
Код:
string input = project.Variables["content2"].Value; // Исходный текст
var list = project.Lists["temp"]; // Список выходных строк
list.Clear(); // Очищаем список
int count = 10; // Количество строк
for (int i = 0; i < count; i++)
{
string pattern = @"^.{200,800}(\.|\?|\!|\s)"; // где 800 - максимальная длина выходных строк (в символах)
Match match = Regex.Match(input, pattern);
if (match.Success)
{
list.Add(match.Value.Trim());
input = input.Remove(0, match.Length);
}
}
project.Variables["content2"].Value = input;
Я в C# не шарю, так что разобраться сложно. Может контента исходного не хватает? Или в этом блоке можно только 0,[max] указывать?
И чтобы отдельно не спрашивать, подскажите еще, что значит эта строка?
Код:
int count = 10; // Количество строк
Заранее спасибо за ответы. И отдельное спасибо автору этого кода!
Вложения
-
47,7 КБ Просмотры: 6
Последнее редактирование: