Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.02.22;
Скачать: CL | DM;

Вниз

посчитать количество слов в строке   Найти похожие ветки 

 
S.S.T.   (2009-01-10 16:23) [0]

Необходимо посчитать количество слов в строке. Вот код который я написал:, Есть ли другие, более оптимальные варианты реализации?

function WordsCount(const S : string; Delimiters: TCharSet): Integer;
var
 L, R : Integer;
begin
  Result := 0;
  L := 1;
  R := Length(S);
  if R = 0 then
    Exit;
  while True do
  begin
    while S[L] in Delimiters do
    begin
      Inc(L);
      if L > R then
        Exit;
    end;
    Inc(Result);
    while not (S[L] in Delimiters) do
    begin
      Inc(L);
      if L > R then
        Exit;
    end;
  end;
end;

Как можно


 
Правильный$Вася   (2009-01-10 16:36) [1]

с for и флагом перехода от слова к неслову было бы проще


 
DFT   (2009-01-10 22:46) [2]

Если используете BDS 2005, то можно еще попробывать использовать TStringList, должно сработать


function GetWordsCount(range: string; delimeter: char): integer;
var
 LS: TStringList;
begin  
 LS:=TStringList.Creaye;
 try
   LS.LineBreak:=char;
   LS.Text:=range;
   result:=LS.Count;
 finally
   LS.Free;
 end;
end;


 
Правильный$Вася   (2009-01-12 13:01) [3]


> DFT   (10.01.09 22:46) [2]

1. ничуть не быстрее
2. разделитель слов может быть не один



Страницы: 1 вся ветка

Текущий архив: 2009.02.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
15-1230012779
Slider007
2008-12-23 09:12
2009.02.22
С днем рождения ! 23 декабря 2008 вторник


2-1231671849
Ruzzz
2009-01-11 14:04
2009.02.22
поддержка плагинов в программе


15-1230176336
Slider007
2008-12-25 06:38
2009.02.22
С днем рождения ! 25 декабря 2008 четверг


2-1231601420
Lukos
2009-01-10 18:30
2009.02.22
Что предпочтительнее Table1.Append или Table1.Insert ?


2-1231518350
happynewyear
2009-01-09 19:25
2009.02.22
как корректно закрыть программу если отсоед родительский диск?