Hi - я использую 4 режима MD5 в программе работают совершенно: #1 - hashes архив - standard #2 - hashes #3 a (бинарного экземпляра архива пусковой площадки + архива цели) - hashes ansistring (архив пусковой площадки + цели прочитанный в ansistring) - будет весьма slow* для больших архивов. - Я читаю buffers блока 32K но с другой стороны должен преобразовать к ansistring одному чарсу одновременно. видит мое code. #4 - Hash шнур (Memo.text). середины
* весьма медленные - взятия хотя бы 10 времен более длиной чем MD5 standard. (причина, котор я не хочу впустить он принимает 100 времен как длинних).
If обеспечило эти же, в итоге, приводя к шнуры, #2, #3 & #4 все производят точно такой же хэш, который первостепенн - т.е. весьма impotant. Для использования моих функций MD5, их необходимо пройти или архивом - назовите или AnsiString.
In конец, мое вопрос в том, что, могу я быстро прочитать огромные архивы в сразу в ansistring ломти?
TIA - class= " lineNumbers " >1 > |
:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
class= " prettyprint " id= " codeSnippet842380 " > StrBuf, StrBuf2, StrPad: ansistring
// bufin2 - > блок [1..32768] AnsiChar
Задают // StrPad одно из несколько, выбранный потребитель,
протоколы // anti-collision
повторение
BlockRead (InFile, Bufin2, SizeOf (Bufin2), NumRead);
BytsRem: = BytsRem - NumRead;
NBlks: = NBlks + 1;
StrBuf: = '';
если NumRead > 0 после этого
для k: = 1 к NumRead делает // ** весьма замедляйте для больших архивов
StrBuf: = StrBuf+AnsiString (Bufin2 [k]);
если NBlks = 1 после этого
StrBuf2: = AnsiString (StrPad+StrBuf)
еще
StrBuf2: = AnsiString (StrBuf2+StrBuf);
MD5Long: = MD5Hex (MD5Str (StrBuf2));
до (NumRead = 0) или (BytsRem = 0); // или (NBlks = 2);
Closefile (InFile);
// завершило хэш содержится в MD5Long
// само важно, MD5Long соглашается точно с
архивы // бинарные «скопированные» hash - см. мое #2.
class= " ясное " >
class=
|