Salut - j'emploie 4 routines MD5 dans un programme qui fonctionnent parfaitement : le #1 - hache un dossier - le standard #2 - hache le #3 d'a (copie binaire de dossier de garniture + de dossier de cible) - hache (dossier de garniture + de cible lu dans ansistring) - un qui est extrêmement slow* pour de grands dossiers. - Je lis le buffers du bloc 32K mais d'autre part dois convertir en un char ansistring à la fois. Le voient mon code. #4 - hacher la corde (Memo.text). moyens extrêmement lents du
* - prises au moins 10 fois plus longtemps que MD5 standard. (cause que je ne veux pas admettre que cela prend 100 fois aussi longues). le
If a fourni la même chose, au total, les cordes en résultant, #2, #3 et #4 tous produisent l'exact le même gâchis, qui est primordial - c.-à-d. extrêmement impotant. Pour employer mes fonctions MD5, elles doivent être passées à un nom de fichier ou à un AnsiString. est-ce que
In l'extrémité, ma question, j'est peut rapidement lire les dossiers énormes dans directement dans les morceaux ansistring ?
TIA - class= " lineNumbers " >1 de > |
:
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= " de StrBuf, StrBuf2, StrPad : ansistring
// bufin2 - > rangée [1..32768] d'AnsiChar
// StrPad est assigné un de plusieurs, utilisateur choisi,
protocoles anti-collision de //
répétition
BlockRead (InFile, Bufin2, SizeOf (Bufin2), NumRead) ;
BytsRem : = BytsRem - NumRead ;
NBlks : = NBlks + 1 ;
StrBuf : = '' ;
si NumRead > 0 puis
pour k : = 1 à NumRead font // ** ralentir extrêmement pour de grands dossiers
StrBuf : = StrBuf+AnsiString (Bufin2 [k]) ;
si NBlks = 1 puis
StrBuf2 : = AnsiString (StrPad+StrBuf)
autrement
StrBuf2 : = AnsiString (StrBuf2+StrBuf) ;
MD5Long : = MD5Hex (MD5Str (StrBuf2));
jusqu'à (NumRead = 0) ou (BytsRem = 0) ; // ou (NBlks = 2) ;
Closefile (InFile) ;
// a accompli le gâchis est contenu dans MD5Long
// d'une manière plus importante, MD5Long est conforme exactement au
les dossiers « copiés » de // binaires hachent - voir le mon #2.
class= > " clair " de |
class= de
|