Olá! - eu uso 4 rotinas MD5 em um programa que trabalham perfeitamente: o #1 - pica uma lima - o standard #2 - pica o #3 da (cópia binária da lima da almofada + da lima de alvo) - pica (lima da almofada + de alvo lida em um ansistring) - um que seja extremamente slow* para grandes limas. - Eu leio o buffers do bloco 32K mas por outro lado tenho que converter a um um carvão animal ansistring em um momento. O considera meu code. #4 - picar a corda (Memo.text). meios extremamente lentos do
* - tomadas pelo menos 10 vezes mais por muito tempo do que MD5 standard. (causa que eu não quero admitir que toma 100 vezes tão longas). o
If forneceu o mesmos, no total, as cordas resultantes, #2, #3 & #4 todos produzem o exato a mesma mistura, que é primordial - isto é extremamente impotant. Para usar minhas funções MD5, devem ser passadas a um nome de arquivo ou a um AnsiString. o
In a extremidade, minha pergunta sou, posso eu rapidamente ler limas enormes em diretamente em pedaços ansistring?
TIA - class= " lineNumbers " >1 do > |
:
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= codeBody " prettyprint " do id= " codeSnippet842380 " do > StrBuf, StrBuf2, StrPad: ansistring
// bufin2 - > disposição [1..32768] de AnsiChar
// StrPad é atribuído um de diversos, usuário selecionado,
protocolos anticolisão de //
repetição
BlockRead (InFile, Bufin2, SizeOf (Bufin2), NumRead);
BytsRem: = BytsRem - NumRead;
NBlks: = NBlks + 1;
StrBuf: = '';
se NumRead > 0 então
para k: = 1 a NumRead faz // ** retardar extremamente para grandes limas
StrBuf: = StrBuf+AnsiString (Bufin2 [k]);
se NBlks = 1 então
StrBuf2: = AnsiString (StrPad+StrBuf)
mais
StrBuf2: = AnsiString (StrBuf2+StrBuf);
MD5Long: = MD5Hex (MD5Str (StrBuf2));
até (NumRead = 0) ou (BytsRem = 0); // ou (NBlks = 2);
Closefile (InFile);
// terminou a mistura é contido em MD5Long
// mais importante ainda, MD5Long concorda exatamente com
as limas “copiadas” binárias de // picam - ver meu #2.
class= > " desobstruído " de
class= do
|