Показать сообщение отдельно
  #3  
Старый 27.05.2022, 00:16
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Вообще, все можно сделать проще:
Код:
procedure TForm1.Button1Click(Sender: TObject);
const
  Leters=['к','п','с','т','ф','х','ц','ч','ш','щ'];
var
  Out : String;
  sl : TStringList;
  I, J : Integer;
  Cnt : Integer;
begin
  Out := '';
  sl := TStringList.Create;
  Try
    sl.Delimiter := ' ';
    sl.Delimitedtext := AnsiLowerCase(Memo1.Lines.Text);

    For I := Low(Letters) To High(Letters) Do
	  Begin
	    Cnt := 0;
		For J := 0 To sl.Count-1 Do
		  If Pos(Letters[i],sl[J]) > 0 Then Inc(Cnt)
		If (Cnt > 0) and (Cnt = sl.Count-1) 
		  Then Out := Out + Letters[i] + ' ';
      End;
  Finally
    sl.Free;
  End;  
  If Out = '' 
    Then Memo2.Lines.Text := 'Букв, которые не входят только в одно слово, нет!'
	Else Memo2.Lines.Text := Out;
end;
Как-то так. Должно работать.
Ответить с цитированием