Procedure
DevideStrOnWords(Str :
String
);
var
CurPos, LengthStr :
byte
;
Ch :
WideString
;
ListWords := TStringList;
begin
ListWords := TStringList
.
Create;
Str:=StringReplace(Str,
'.'
,
' '
,[rfReplaceAll]);
Str:=StringReplace(Str,
','
,
' '
,[rfReplaceAll]);
Str:=StringReplace(Str,
'!'
,
' '
,[rfReplaceAll]);
Str:=StringReplace(Str,
'?'
,
' '
,[rfReplaceAll]);
CurPos :=
0
;
LengthStr := Length(Str);
repeat
inc(CurPos);
Ch := Copy(Str, CurPos ,
1
);
if
Ch =
' '
then
begin
while
Copy(Str, CurPos+
1
,
1
) =
' '
do
begin
Str := Copy(Str,
1
, CurPos)+Copy(Str, CurPos+
2
, LengthStr-CurPos+
1
);
Dec(LengthStr);
end
;
end
;
until
CurPos=Length(Str);
Str:=StringReplace(Str,
' '
,#
13
#
10
,[rfReplaceAll]);
ListWords
.
text := Str;
end
;