Где-то я читал, что если значения идут строго по возрастанию или убыванию, то он и так работает как индексный поиск.
Хотя через массив мож и быстрее будет. Как грится - переделайте, сравните оба варианта, будем пользоваться более скоростным

Модератор: Модераторы
#209: begin
Inc(i);
Case s[i] of
#128..#143:begin
n:=ord(s[i]);
Result[j]:=Char(n+112);//'р'..'я'
end;
function Utf8ToTranslit(var Text: string): boolean;
var InString: string;
OutString: string;
b: string;
i, Len: integer;
begin
Result:=true;
InString:=Text;
OutString := '';
Len:=Length(InString);
i := 1;
try
repeat
writeln(InString[i]);
writeln(ord(InString[i]));
if InString[i] = #208 then
begin
inc(i);
writeln(InString[i]);
writeln(ord(InString[i]));
case InString[i] of
#176: b:='a'; #177: b:='b'; #178: b:='v'; #179: b:='g'; #180: b:='d'; #181: b:='e';
#182: b:='zh'; #183: b:='z'; #184: b:='i'; #185: b:='i'; #186: b:='k'; #187: b:='l';
#188: b:='m'; #189: b:='n'; #190: b:='o'; #191: b:='p';
#144: b:='A'; #145: b:='B'; #146: b:='V'; #147: b:='G'; #148: b:='D'; #149: b:='E';
#129: b:='E';
#150: b:='ZH';#151: b:='Z'; #152: b:='I'; #153: b:='I'; #154: b:='K'; #155: b:='L'; #156: b:='M'; #157: b:='N';
#158: b:='O'; #159: b:='P'; #160: b:='R'; #161: b:='S'; #162: b:='T'; #163: b:='U'; #164: b:='F'; #165: b:='H';
#166: b:='C'; #167: b:='CH';#168: b:='SH';#169:b:='SCH';#170: b:='`'; #171: b:='U'; #172: b:='`'; #173: b:='E';
#174: b:='U'; #175: b:='YA';
else b:='?';
end;
end
else
if InString[i] = #209 then
begin
inc(i);
writeln(InString[i]);
writeln(ord(InString[i]));
case InString[i] of
#128: b:='r'; #129: b:='s'; #130: b:='t'; #131: b:='u'; #132: b:='f';
#133: b:='h'; #134: b:='c'; #135: b:='ch';#136: b:='sh';#137: b:='sch';
#138: b:='`'; #139: b:='u'; #140: b:='`'; #141: b:='e'; #142: b:='u';
#143: b:='ya';#145: b:='e';
else b:='?';
end;
end
else
b := InString[i];
inc(i);
OutString:=OutString+b
until i>Len;
Text:=OutString;
except
Result:=false
end
end;
Скажите, существует ли к Паскалю модуль, который занимался бы перекодировкой текста? Конкретно мне надо из utf-8 в cp-1251.
function UTF8ToCP1251(const s: string): string; // cyrillic
svk12 писал(а):Модуль называется "lconvencoding".
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 249