Форум: "Начинающим";
Текущий архив: 2009.02.22;
Скачать: [xml.tar.bz2];
Внизпосчитать количество слов в строке Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.005 c