1 >
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= " ясное " >