Всем доброй ночи
Помогите решить такое вот задание:
Сформировать текстовый файл, в который записать все предложения исходного текста, содержащие кому, а также нужно сформировать список, содержащий длину каждого предложения исходного текста.
Может что-то из этого кода можно "выковырять"?
Код:
procedure TForm1.Button1Click(Sender: TObject);
const
//Разделители предложений.
Df = ['.', '!', '?'];
//Разделители слов.
Da = ['.', ',', ':', ';', '!', '?', '-', ' ', #9, #10, #13];
var
S : String;
//P1 - позиция начала предложения. CntW - счётчик слов в предложении.
i, CntW, P1, Len : Integer;
begin
Memo2.Clear;
//Исходный текст.
S := Memo1.Text;
Len := Length(S);
//Обработка текста.
P1 := 0;
CntW := 0;
for i := 1 to Len do begin
//Отслеживаем начало предложения.
if (i = 1) or (S[i - 1] in Df) then P1 := i;
//Если символ не является разделителем слова.
if not (S[i] in Da) then begin;
//Отслеживаем конец слова и подсчитываем слово.
if (i = Len) or (S[i + 1] in Da) then Inc(CntW);
end;
//Отслеживаем конец предложения.
if (i = Len) or (S[i] in Df) then begin
//Если количество слов >= 3, то добавляем это предложение
//в Мемо результата.
if CntW >= 2 then Memo2.Lines.Add( Copy(S, P1, i - P1 + 1) );
//Сброс счётчика слов.
CntW := 0;
end;
end;
end;