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

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

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

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

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

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

Здравствуйте, господа! Вот делал работу, но не получается доделать(исправить). Буду благодарен каждому кто мне поможет! :-)

Дана строка, ограниченная точкой(Edit1), содержащая слова из лат. букв. Слова разделены 1 или несколькими пробелами.
Напечатать все слова, которые встречаются в этой строке по 1 разу.
Программа работает и казалось бы работает правильно. НО! Если я введу в Edit1 например строку: a as. То в Edit2 он ничего не выведет, хотя это разные слова. Мол первое слово входит во второе и значит они одинаковые.


Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Edit2: TEdit;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var s,s1, ss : string;
    p:Integer;
begin
 Edit2.Text:='';
 S:=Edit1.Text;
 delete(S,pos('.',S),1);
 S:=S+' ';
 s1:='';
 P:=Pos(' ',S);
 while p>0 do
 begin
  ss:=copy(s,1,p-1);
  delete(S,1,p);
  p:=pos(ss,S);
  if p=0 then s1:=s1+ss+' '
  else
  while p<>0 do
   begin
   Delete(S,P,Length(ss)+1);
   p:=pos(ss,S);
   end;
  p:=Pos(' ',S);
 end;
Edit2.Text:=s1;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
case key of
'a'..'z':;
'A'..'Z':;
'.':;
#8:;
#32:;
#13:Button1.SetFocus;
else Key:=Chr(0);
end;
end;
end.
Сароникус вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемещение курсора Memo в начало(Delphi) ChEaTeR-abc Помощь студентам 3 11.09.2010 20:54
Delphi. Перемещение всех элементов массива с четными значениями в конец массива2. deathz0r Помощь студентам 1 25.05.2010 15:04
[Delphi]Перемещение компонента к щелчку мыши. Fiery Fox Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 07.03.2010 10:01
Перемещение окон в Delphi 7.0 a_n_n_a Общие вопросы Delphi 9 12.03.2009 03:26
Delphi, перемещение формы. north Помощь студентам 3 23.01.2008 22:34