|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Starikov Alexander 2:5020/400 24 Dec 2001 14:29:08 To : Sergey Kabikov Subject : Re: Разбиение текста -------------------------------------------------------------------------------- > Hе проблема : "вперед" на макс. допустимое кол-во символов, а оттуда назад до > первого пробела. Полученный кусок выбросить и начать сначала. Да я так и делаю, однако не всегда правильно получается в последних двух кусках - предпоследний пожет ещё поместить слово, однако оно переностися в последний кусок... Вот кусок кода: AnsiString Text; // Исходный текст int MesL = 30; // Max длина части int xn; Set <char, 0, 255> RR; RR << ' ' << ',' << '.' << '?' << '!' << '-' << ':' << ';'; // Символы, с которых переходим на новую часть while (Text.Length() > 0) { xn = MesL; if (Text.Length() < MesL) xn = Text.Length(); if (Text.Length() > MesL) while (!RR.Contains((unsigned char)Text[xn]) && xn >= 1) xn--; if (xn <= 1) xn = MesL; AnsiString qq = Text.SubString(1, xn); qq = qq.Trim(); Text = ((AnsiString)Text.SubString(xn + 1, Text.Length())); Text = Text.Trim(); lb->Items->Add(IntToStr(MesC) + " :" + qq + ": " + qq.Length()); } -- Отправлено через сервер Talk.Ru - http://www.talk.ru --- ifmail v.2.15dev5 * Origin: Talk.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/64886513e16c.html, оценка из 5, голосов 10
|