Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Проверка crc файла


Автор: melx 19.7.2004, 08:20
Каким образом подсчитать контрольную сумму в файле exe ?

Автор: melx 19.7.2004, 09:27
Т.е. произвести бинарное чтение файла, с подсчетом контрольной суммы.

Автор: Malex 19.7.2004, 09:53
FF = FreeFile
a = String$(5, " ")
Open putt For Binary As #FF
Seek #1, 1000 ' чтобы опустить заголовок exe
Do Until (EOF(1))
Get #FF, sum, a
sum = sum + 5
For I = 1 To Len(a)
k1b = Asc(Mid$(a, I, 1))
sum1 = sum1 + k1b * sum: If sum1 > 256 Then sum1 = sum1 - 256 * Int(sum1 / 256)
Next I
Loop
Close #FF

' скажем так sum ведет счетчик, по 5 байтов (можно увеличить)
' а sum1 суммирует crc файла. Суммируется значением байта от компьютера умноженного на позицию файла.

Пойдет?
Может правда другой что нибудь кто-то скажет.

Автор: gromstar 22.3.2006, 19:35
а как подсчитать контрольную сумму любого файлаи, если можно с описанием алгоритма?

Автор: cardinal 22.3.2006, 19:46
Первое что мне google выкинул...
http://vb-tec.de/crc.htm

Автор: Akina 22.3.2006, 19:47
Вообще-то есть несколько разных (причем принципиально разных) алгоритмов подсчета CRC... кто хочет осмысленного совета - задает осмысленный вопрос.

Автор: Velin 22.3.2006, 20:28
Ну самый простой, отключить в VB проверку переполнения и суммировать все байты. И будет вам простешая CRC.

Автор: gromstar 23.3.2006, 11:17
cardinal, Еще раз огромное спасибо!!!

Автор: SCINER2 27.3.2006, 07:28
http://forum.sources.ru/index.php?act=ST&f=144&t=131528&st=0#entry1005829

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)