Показать сообщение отдельно

  #8  
Старый 16.03.2010, 20:40
Soherox
Познающий
Регистрация: 17.02.2010
Сообщений: 45
С нами: 8542140

Репутация: 47
По умолчанию

DJeFRY_RASH...потестил, вроде работает, но как говорится вроде...если что, могу исходник кинуть

Код:
const
  n = 10000;

var
  Form1: TForm1;
  a: string;
  lin: array [1..n] of shortstring;
  kol, lenn: integer;

implementation

{$R *.dfm}

function check(f: string; var kol2: integer; len: integer): boolean;
  var
    i: integer;
    ok: boolean;
begin
  ok:=false;
  for i:=1 to kol do
    if f = lin[i] then
      begin
        delete(a, kol2 - len, len);
        dec(kol2, len);
        dec(lenn, len);
        ok:=true;
        break;
      end;
  if not ok then
    begin
      inc(kol);
      lin[kol]:=f;
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
  var
    i: integer;
    f: shortstring;
begin
  a:=Edit1.Text;
  for i:=1 to kol do
    lin[i]:='';
  i:=1;
  kol:=0;
  f:='';
  a:=a+' ';

  lenn:=length(a);
  while i <= lenn do
    begin
      if a[i] in ['A'..'Z', 'a'..'z'] then f:=f + a[i]
      else
        if (a[i] in [',', '.', '!', ';', ':', ' ']) then
          begin
            check(f, i, length(f));
            f:='';
            if a[i] = ' ' then if a[i-1] = ' ' then
              begin
                delete(a, i-1, 1);
                dec(i);
                dec(lenn);
              end;
          end;
      inc(i);
    end;
  Edit2.Text:=a;
end;

end.
 
Ответить с цитированием