Показать сообщение отдельно
  #2  
Старый 27.12.2009, 19:31
Kapitoshka438 Kapitoshka438 вне форума
Начинающий
 
Регистрация: 09.11.2009
Сообщения: 145
Репутация: 238
По умолчанию

Код:
procedure FindWords;
var
  C, S, W: string;
  Q: Boolean;
  P, I: Integer;
begin
  Edit3.Clear;
  S := Edit1.Text;
  C := Edit2.Text;
  W := '';
  P := Pos(C, S);   // Находим первое вхождение символа
  Q := P > 0;
  while Q do
  begin
    W := C;   //начинаем составлять слово
    I := P - 1;
    while (I > 0) and (S[i] <> ' ') do  //добавляем в слово предыдущие по пробела символы
    begin
      W := S[i] + W;
      Dec(I);
    end;
    I := P + 1;
    while (I <= Length(S)) and (S[i] <> ' ') do  //добавляем к слову последующие до пробела символы
    begin
      W := W + S[i];
      Inc(I);
    end;
    Edit3.Text := Edit3.Text + W + ', ';
    S := Copy(S, I, Length(S));  // отрезаем из текста рассмотренный кусок текста
    P := Pos(C, S);
    Q := P > 0;
  end;
end;

Вот, как-то так наверно, не проверял, конечно.
Ответить с цитированием