Показать сообщение отдельно
  #8  
Старый 06.02.2009, 21:26
darksoftware darksoftware вне форума
Прохожий
 
Регистрация: 03.09.2008
Сообщения: 20
Репутация: 10
Лампочка

приведение к типу байт будет быстрее. Вызов функции - уже лишняя операция. В C это реализовано правильно - байт и есть unsigned char.

Вот простейший алгоритм.

var counter: array [192..255] of longint;

for i:=192 to 255 do counter[i]:=0;

for i:=1 to length(s) do

if s[i] in [#192..#255] then counter[byte(s[i])]:=counter[byte(s[i])]+1;

В массиве будет кол-во повторений символов диапазона CP1251 Cyrillic. Под любой диапазон кодировки 866 переделать элементарно.
Ответить с цитированием