unit palabrasF;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    lblContar: TLabel;
    lbPalabras: TListBox;
    Corpus: TMemo;
    procedure FormCreate(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
  const muestra ='En un lugar de la Mancha, de cuyo nombre no' +
  ' quiero acordarme, no ha mucho tiempo que vivía un'+
  ' hidalgo de los de lanza en astillero, adarga antigua,'+
 ' rocín flaco y galgo corredor.' + ' Una olla de algo más vaca' +
  ' que carnero, salpicón las más noches, duelos y quebrantos' +
  ' los sábados, lentejas los viernes,' ;
var
  Form1: TForm1;



implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
var
  sl, unicas: TStringList;
  j: integer;
begin
  Corpus.Text:= muestra;
  sl := TStringList.Create;
	 unicas := TStringList.Create;
	 try
  	sl.CommaText:= muestra;
 		sl.Sort;
		for j := 0 to sl.Count-1 do
			if (unicas.IndexOf(sl[j]) < 0)
				then unicas.Add(sl[j]);
		lbPalabras.Items.AddStrings(unicas);
		lblContar.Caption:= Format('El Corpus tiene %d	palabras, de las que %d son únicas',
						[sl.Count, unicas.Count]);
	finally
		sl.Free;
		unicas.Free;
	end;
end;

end.
