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

Вниз

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

 
Aleksandr.   (2004-08-05 14:41) [0]

У меня раньше был асмовский код и паскалевский код. Но понадобилось написать ряд библиотечек для сайта на Delphi .Net, а в ней не поддерживаются ни asm ни absolute. Паскалевский код

function CalculateCRC32(var buffer; const size:integer): cardinal;
var
 i     : integer;
 data  : array [0..0] of byte absolute buffer;
begin
result:=$FFFFFFFF;
for i:=0 to size-1 do result:=(result shr 8) xor (CRC32Table[byte(result) xor data[i]]);
result:=result xor $FFFFFFFF
end;

Вот без поддержки absolute мне никак не получается свести data с buffer. Как это можно сделать еще? Delphi .Net вообще какая-то долбанутая с поддержкой - в хелпе у нее все есть, расписывается, для чего нужны asm, absolute, а компилятор нафиг посылает, утверждает, что инвалидная директива.


 
REA ©   (2004-08-05 14:46) [1]

Что-то типа такого:

Var
Data: PByteArray;

Data := Buffer;


 
Aleksandr.   (2004-08-05 15:01) [2]

Шиш, пробовал я такое. Не разрешает .Net нетипизированный присваивать массиву байт. А если наколоть ее и сделать так:
Data:=PByteArray(Buffer),
то она скажет вот в этой строчке
   result:=(result SHR 8) XOR (CRC32Table[byte(result) XOR data[i]]);
что array type required.


 
Aleksandr.   (2004-08-05 15:28) [3]

Усе, привел падлу. Засчитала...



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

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

Наверх




Память: 0.47 MB
Время: 0.034 c
1-1091799966
mouse_web
2004-08-06 17:46
2004.08.22
Привязка ProgressBar к поиску по базе


1-1092038545
Mitrofan
2004-08-09 12:02
2004.08.22
Поместить форму с компонентами в DLL


1-1091789377
xman
2004-08-06 14:49
2004.08.22
TreeView


3-1090244437
Григорьев Антон
2004-07-19 17:40
2004.08.22
Как вызвать редактор ADOConnection.ConnectionString в run-time?


3-1091440881
V-A-V
2004-08-02 14:01
2004.08.22
Связь с таблицей из другой базы в Access базах