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

Вниз

Можно ли как-то оптимизировать этот код (для скорострельности)?   Найти похожие ветки 

 
Aleksandr.   (2004-09-27 12:50) [0]

Он работает, но на большом количестве данных заметны тормоза. Смысл в том, что кодируемая строка "доливается" до заданной длины константной строкой и своей длиной, потом ксорится. Расшифровка в обратной последовательности. Id может быть разным:


function EncodeByID(const S : string; const ID : integer=3) : string;
var
 mPos  : byte;
 i     : integer;
begin
 mPos:=length(s);
 Result:=IntToHex(mPos,1)+Copy(DefCodeKeyStr,1,length(DefCodeKeyStr)-length(s))+s;
 for i:=1 to length(Result) do
   Result[i]:=Chr(Ord(Result[i]) XOR ID)
end;

function DecodeByID(const S : string; const ID : integer=3) : string;
var
 mPos  : byte;
 i     : integer;
begin
 mPos:=StrToInt("$"+Chr(Ord(s[1]) XOR ID));
 Result:=Copy(s,length(DefCodeKeyStr)-mPos+2,mPos);
 for i:=1 to length(Result) do
   Result[i]:=Chr(Ord(Result[i]) XOR ID)
end;


 
PVOzerski ©   (2004-09-27 12:55) [1]

Может, SetLength+Move вместо Copy и убыстрят, но это надо проверять. Еще вариант: если длины строк неикогда не больше 255, использование ShortString"ов позволит избежать динамического перевыделения памяти.


 
Aleksandr.   (2004-09-27 13:26) [2]

Спасибо. Может, заодно подскажете, как сделать, чтобы результаты XOR"a всегда были в наборе допустимых символов? А то результаты попадают в таблицу BDE, которая хрен пропустит что-то из служебных?


 
panov ©   (2004-09-27 13:34) [3]

>Aleksandr.   (27.09.04 13:26) [2]
Преобразуй в текстовый вид (HEX) и сохраняй в таком виде.


 
Anatoly Podgoretsky ©   (2004-09-27 13:34) [4]

Преобразовывать в воспринимаемый набор


 
Aleksandr.   (2004-09-27 14:20) [5]

Удалено модератором



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

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

Наверх




Память: 0.47 MB
Время: 0.051 c
8-1090305304
Алекс
2004-07-20 10:35
2004.10.10
Звуки Windows


1-1096275024
Aleksandr.
2004-09-27 12:50
2004.10.10
Можно ли как-то оптимизировать этот код (для скорострельности)?


4-1094121621
Владимир
2004-09-02 14:40
2004.10.10
Как в одном приложении сделать окна (формы) доступные по Alt+Tab


4-1094575392
Klopan
2004-09-07 20:43
2004.10.10
lpt port


4-1094070719
Jetus
2004-09-02 00:31
2004.10.10
Проблема со вставкой ресурсов в ехе-файл