Вопрос : Делфи прочитало огромные архивы в ansistring ломти

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=

Ответ : Делфи прочитало огромные архивы в ansistring ломти

функция MD5Str (m: RawByteString): MD5Digest;

Вы не должны преобразовать к AnsiString при использовании этого. Вы получаете по-разному хэш когда вы не делаете? Вы.
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us