Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2011, 19:00   #1
Сароникус
Пользователь
 
Регистрация: 01.10.2011
Сообщений: 12
Восклицание Delphi 7; Перенос слов из строки в строку

Дана строка ( Edit1 ), ограниченная точкой, содержащая слова, состоящие из лат. букв. Слова разделены одним или несколькими пробелами. Напечатать в Edit2 все слова, которые встречаются в Edit1 по одному разу.

P.S. Заранее благодарен тому кто поможет!
Сароникус вне форума Ответить с цитированием
Старый 18.10.2011, 20:15   #2
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var s, ss : string;
begin
 Edit2.Text:='';
 S:=Trim(Edit1.Text);
 // убиваем двойные пробелы
 while Pos('  ',S)>0 do // тут 2 пробела
 delete(S,Pos('  ',S),1);
 S:=S+' ';

 while Pos(' ',S)>0 do // тут 1 пробел
 begin
  ss:=copy(s,1,Pos(' ',S));
  delete(S,1,Pos(' ',S));
  // ss-текущее слово слева
  // проверим есть ли оно в остальном тексте и в перенесённом
  if (Pos(ss, S)<1) and (Pos(ss, Edit2.Text)<1) then
    Edit2.Text:=Edit2.Text + ss; // нет слова переносим
 end;
end;
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 18.10.2011, 20:36   #3
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Как то так
Код:
procedure TForm1.Button1Click(Sender: TObject);
Var
  Mas:array[1..20] of String;
  SpasePosition:Byte;
  St,SubSt:String;
  i,Count,j,CountPovtorov:Byte;
  WasFound:Boolean;
begin
  st:=Edit1.Text;
  SubSt:='';
  j:=0;
  Count:=0;
  i:=1;
  While i <= Length(St) do
  Begin
    If (St[i] <> ' ') and ( i <= Length(St)) then SubSt:=SubSt+St[i];
    If (St[i] = ' ') or ( i = Length(St)) then
    Begin
      If SubSt <> '' then
      Begin
        Inc(j);
        Mas[j]:=SubSt;
        inc(count);
        SubSt:=''
      End;
    End;
    Inc(i)
  End;
  For i:=1 to Count do
  Begin
    CountPovtorov:=0;
    For j:=1 to Count do
    If (Mas[i] = Mas[j]) and ( i <> j) then
    Begin
      Inc(CountPovtorov);
      Break
    End;
    If CountPovtorov = 0 then
    Edit2.Text:=Edit2.Text + ' ' + Mas[i]
  End;
end;
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 18.10.2011, 23:39   #4
Сароникус
Пользователь
 
Регистрация: 01.10.2011
Сообщений: 12
По умолчанию

Огромное спасибо вам! Очень помогли :-)
Сароникус вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенос слов alevtina07 Microsoft Office Word 4 27.10.2011 15:25
Перенос слов в файле Lodas Общие вопросы C/C++ 4 18.10.2011 21:55
Перенос слов Алексей078 Microsoft Office Word 2 19.07.2011 01:57
Перенос слов Maxs Общие вопросы Delphi 8 02.05.2009 20:58
перенос слов АлёнаP Microsoft Office Access 0 17.03.2009 09:29