Показать сообщение отдельно
  #3  
Старый 24.02.2010, 17:36
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Еще вариант...
Код:
//*********************************************************
//Разбить строку на слова
Procedure TParser.pDevideStrOnWords(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;
//*********************************************************
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием