Вниз
Скачать: CL | DM;

Работа с 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.007 c
2-1313573567
2012
2011-08-17 13:32
2011.12.04
Проблема с чтением нетипизированного файла


2-1312985507
Kalten
2011-08-10 18:11
2011.12.04
непонятки в создании меню в проекте delphi7


15-1313261161
Jeer
2011-08-13 22:46
2011.12.04
День физкультурника


6-1246383174
ganzzz
2009-06-30 21:32
2011.12.04
Кто нибудь встречал заголовок wget?


2-1313476457
Cobalt
2011-08-16 10:34
2011.12.04
Left side cannot be assigned to (D2007)




   Наверх