Форум: "Начинающим";
Текущий архив: 2011.12.04;
Скачать: [xml.tar.bz2];
ВнизРабота с TMemo Найти похожие ветки
← →
Nikki (2011-08-12 14:48) [0]Подскажите пожайлуста,как в тексте(загруженом в Memo) найти предложения содержащие более 30 сим. и вывести в соседний компонент Memo?
← →
oldman © (2011-08-12 14:57) [1]функциями поиска в тексте и функциями присваивания
← →
oldman © (2011-08-12 15:12) [2]И то лопухнуться можно. Если, например, искать точку как конец предложения
Нужен форматированный текст в Мемо. Например, одно предложение - одна строка.
← →
OW © (2011-08-12 15:34) [3]убедиться, что все собрано в одну строку. ( т.е. исключить символы перевода строки(возможно + исключить двойные пробелы))
Определить, что считается признаком конца предложения.
текущее положение = 0
повторять
найти следующий признак конца предложения от текущего положения.
если расстояние между ним и текущее положение > 30 символов
записать в мемо2(возможно отнять кол-во пробелов)
текущее положение = признак конца предложения
цикл
← →
Игорь Шевченко © (2011-08-12 15:57) [4]в первую очередь выгрузит из мемо и работать со строкой. Иначе открытий чудных может быть дофига
← →
Nikki (2011-08-12 16:09) [5]Спасибо большое!
← →
OW © (2011-08-12 17:29) [6]для сдачи лабы пойдет так, например
я "добрый" в пятницу :)
Const
EndS: Set of char = [".", "!", "?"];
var
S: string;
i: Integer;
C: integer;
begin
S := mmo1.Lines.Text;
S := StringReplace(S, #13#10, #32, [rfReplaceAll]);
repeat
S := StringReplace(S, #32#32, #32, [rfReplaceAll]);
until Pos(#32#32, S) = 0;
C := 0;
for i := 1 to Length(s) - 1 do
begin
// тут бы с pos опять не мешало, или posEx, а не перебирать, но не охота думать
if S[i] in EndS then
begin
mmo2.Lines.Add("--");
mmo2.Lines.Add( IntToStr(i-C) + "ñèìâîëîâ");
mmo2.Lines.Add(Copy(S, C, i-C));
C := i + 1;
end;
end;
// если в конце точку забыли
if Length(S) - C > 30 then
begin
mmo2.Lines.Add(Copy(S, C, Length(S) - C) + ".");
end;
end;
← →
oldman © (2011-08-12 20:25) [7]
> OW © (12.08.11 17:29) [6]
В тексте
"Не нужно использовать знаки `.`, `!` и `?` где не надо."
вся лаба идет прахом
← →
SQLEXPRESS (2011-08-12 21:20) [8]
> oldman © (12.08.11 20:25) [7]
а не нужно при сдаче лабы выбирать такой текст :)
а проблема на самом деле, конечно, несколько больше, чем кажется на первый взгляд. Любая прямая речь может порвать так, как Промту и не снилось..
← →
Nikki (2011-08-12 23:01) [9]Еще раз спасибо за помощь!
← →
SQLEXPRESS (2011-08-12 23:28) [10]хотя странно...суровые челябинские студенты и летом учатся? :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.12.04;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.005 c