![](/user_photo/21626_SPZlF.png)
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
SourceEdit: TEdit;
btnFindWord: TButton;
Label2: TLabel;
Label3: TLabel;
sWordMinEdit: TEdit;
ColMinEdit: TEdit;
Label4: TLabel;
sWordMaxEdit: TEdit;
Label5: TLabel;
ColMaxEdit: TEdit;
procedure btnFindWordClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btnFindWordClick(Sender: TObject);
const Delims = [' ', '.', ',', ':', ';', '!', '?', '-', Char(9), Char(10), Char(13)];
var i, min, max: integer;
sStr, sWord: string;
begin
max := 0; min := 0; sWord := '';
sWordMinEdit.Clear; sWordMaxEdit.Clear;
ColMinEdit.Clear; ColMaxEdit.Clear;
sStr := SourceEdit.Text;
if not (sStr[Length(sStr)] in Delims) then sStr := sStr + '.';
for i := 1 to Length(sStr) do
begin
if sStr[i] in Delims then
begin
if min = 0 then
min := Length(sWord)
else
if min > Length(sWord) then
min := Length(sWord);
if max = 0 then
max := Length(sWord)
else
if max < Length(sWord) then
max := Length(sWord);
sWord := '';
end
else sWord := sWord + sStr[i];
end;
ColMinEdit.Text := IntToStr(min);
ColMaxEdit.Text := IntToStr(max);
sWord := '';
for i := 1 to Length(sStr) do
begin
if sStr[i] in Delims then
begin
if min = Length(sWord) then sWordMinEdit.Text := sWordMinEdit.Text + sWord + ' ';
if max = Length(sWord) then SWordMaxEdit.Text := sWordMaxEdit.Text + sWord + ' ';
sWord := '';
end
else sWord := sWord + sStr[i];
end;
end;
end.
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
SourceEdit: TEdit;
btnFindWord: TButton;
Label2: TLabel;
Label3: TLabel;
sWordMinEdit: TEdit;
ColMinEdit: TEdit;
Label4: TLabel;
sWordMaxEdit: TEdit;
Label5: TLabel;
ColMaxEdit: TEdit;
procedure btnFindWordClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btnFindWordClick(Sender: TObject);
const Delims = [' ', '.', ',', ':', ';', '!', '?', '-', Char(9), Char(10), Char(13)];
var i, min, max: integer;
sStr, sWord: string;
begin
max := 0; min := 0; sWord := '';
sWordMinEdit.Clear; sWordMaxEdit.Clear;
ColMinEdit.Clear; ColMaxEdit.Clear;
sStr := SourceEdit.Text;
if not (sStr[Length(sStr)] in Delims) then sStr := sStr + '.';
for i := 1 to Length(sStr) do
begin
if sStr[i] in Delims then
begin
if min = 0 then
min := Length(sWord)
else
if min > Length(sWord) then
min := Length(sWord);
if max = 0 then
max := Length(sWord)
else
if max < Length(sWord) then
max := Length(sWord);
sWord := '';
end
else sWord := sWord + sStr[i];
end;
ColMinEdit.Text := IntToStr(min);
ColMaxEdit.Text := IntToStr(max);
sWord := '';
for i := 1 to Length(sStr) do
begin
if sStr[i] in Delims then
begin
if min = Length(sWord) then sWordMinEdit.Text := sWordMinEdit.Text + sWord + ' ';
if max = Length(sWord) then SWordMaxEdit.Text := sWordMaxEdit.Text + sWord + ' ';
sWord := '';
end
else sWord := sWord + sStr[i];
end;
end;
end.