powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / вычисление контрольной суммы по алгоритму CRC32
9 сообщений из 9, страница 1 из 1
вычисление контрольной суммы по алгоритму CRC32
    #35933322
Kasher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите пожалуйста переделать под VB 2005. Есть код написанный для Access.
http://am.rusimport.ru/MSAccess/topic.aspx?ID=292&find=CRC32

Пока получилось только так, но естественное куча ошибок

Код: plaintext
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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
Module CCRC
    ''Option Compare Database

    'вычисление контрольной суммы по алгоритму CRC32
    'am 030924
    'написан на основании примера на С++

    ''Option Explicit

    Private Declare Function timeGetTime Lib "winmm.dll" () As Long

    Private Declare Sub MemCopy Lib "kernel32" Alias _
            "RtlMoveMemory" (ByVal dest As String, ByVal src As String, _
            ByVal numbytes As Long)

    ' ***************************************************
    ' Table used by CRC Calculation Algorithm
    ' ***************************************************
    Private crctab32( 0  To  255 ) As Long
    Sub New()
        'заполним массив
        crctab32( 0 ) = &H0 : crctab32( 1 ) = &H77073096 : crctab32( 2 ) = &HEE0E612C : crctab32( 3 ) = &H990951BA

        crctab32( 4 ) = &H76DC419 : crctab32( 5 ) = &H706AF48F : crctab32( 6 ) = &HE963A535 : crctab32( 7 ) = &H9E6495A3
        crctab32( 8 ) = &HEDB8832 : crctab32( 9 ) = &H79DCB8A4 : crctab32( 10 ) = &HE0D5E91E : crctab32( 11 ) = &H97D2D988
        crctab32( 12 ) = &H9B64C2B : crctab32( 13 ) = &H7EB17CBD : crctab32( 14 ) = &HE7B82D07 : crctab32( 15 ) = &H90BF1D91
        crctab32( 16 ) = &H1DB71064 : crctab32( 17 ) = &H6AB020F2 : crctab32( 18 ) = &HF3B97148 : crctab32( 19 ) = &H84BE41DE
        crctab32( 20 ) = &H1ADAD47D : crctab32( 21 ) = &H6DDDE4EB : crctab32( 22 ) = &HF4D4B551 : crctab32( 23 ) = &H83D385C7
        crctab32( 24 ) = &H136C9856 : crctab32( 25 ) = &H646BA8C0 : crctab32( 26 ) = &HFD62F97A : crctab32( 27 ) = &H8A65C9EC
        crctab32( 28 ) = &H14015C4F : crctab32( 29 ) = &H63066CD9 : crctab32( 30 ) = &HFA0F3D63 : crctab32( 31 ) = &H8D080DF5
        crctab32( 32 ) = &H3B6E20C8 : crctab32( 33 ) = &H4C69105E : crctab32( 34 ) = &HD56041E4 : crctab32( 35 ) = &HA2677172
        crctab32( 36 ) = &H3C03E4D1 : crctab32( 37 ) = &H4B04D447 : crctab32( 38 ) = &HD20D85FD : crctab32( 39 ) = &HA50AB56B
        crctab32( 40 ) = &H35B5A8FA : crctab32( 41 ) = &H42B2986C : crctab32( 42 ) = &HDBBBC9D6 : crctab32( 43 ) = &HACBCF940
        crctab32( 44 ) = &H32D86CE3 : crctab32( 45 ) = &H45DF5C75 : crctab32( 46 ) = &HDCD60DCF : crctab32( 47 ) = &HABD13D59
        crctab32( 48 ) = &H26D930AC : crctab32( 49 ) = &H51DE003A : crctab32( 50 ) = &HC8D75180 : crctab32( 51 ) = &HBFD06116
        crctab32( 52 ) = &H21B4F4B5 : crctab32( 53 ) = &H56B3C423 : crctab32( 54 ) = &HCFBA9599 : crctab32( 55 ) = &HB8BDA50F
        crctab32( 56 ) = &H2802B89E : crctab32( 57 ) = &H5F058808 : crctab32( 58 ) = &HC60CD9B2 : crctab32( 59 ) = &HB10BE924
        crctab32( 60 ) = &H2F6F7C87 : crctab32( 61 ) = &H58684C11 : crctab32( 62 ) = &HC1611DAB : crctab32( 63 ) = &HB6662D3D
        crctab32( 64 ) = &H76DC4190 : crctab32( 65 ) = &H1DB7106 : crctab32( 66 ) = &H98D220BC : crctab32( 67 ) = &HEFD5102A
        crctab32( 68 ) = &H71B18589 : crctab32( 69 ) = &H6B6B51F : crctab32( 70 ) = &H9FBFE4A5 : crctab32( 71 ) = &HE8B8D433
        crctab32( 72 ) = &H7807C9A2 : crctab32( 73 ) = &HF00F934 : crctab32( 74 ) = &H9609A88E : crctab32( 75 ) = &HE10E9818

        crctab32( 76 ) = &H7F6A0DBB : crctab32( 77 ) = &H86D3D2D : crctab32( 78 ) = &H91646C97 : crctab32( 79 ) = &HE6635C01
        crctab32( 80 ) = &H6B6B51F4 : crctab32( 81 ) = &H1C6C6162 : crctab32( 82 ) = &H856530D8 : crctab32( 83 ) = &HF262004E
        crctab32( 84 ) = &H6C0695ED : crctab32( 85 ) = &H1B01A57B : crctab32( 86 ) = &H8208F4C1 : crctab32( 87 ) = &HF50FC457
        crctab32( 88 ) = &H65B0D9C6 : crctab32( 89 ) = &H12B7E950 : crctab32( 90 ) = &H8BBEB8EA : crctab32( 91 ) = &HFCB9887C
        crctab32( 92 ) = &H62DD1DDF : crctab32( 93 ) = &H15DA2D49 : crctab32( 94 ) = &H8CD37CF3 : crctab32( 95 ) = &HFBD44C65
        crctab32( 96 ) = &H4DB26158 : crctab32( 97 ) = &H3AB551CE : crctab32( 98 ) = &HA3BC0074 : crctab32( 99 ) = &HD4BB30E2
        crctab32( 100 ) = &H4ADFA541 : crctab32( 101 ) = &H3DD895D7 : crctab32( 102 ) = &HA4D1C46D : crctab32( 103 ) = &HD3D6F4FB
        crctab32( 104 ) = &H4369E96A : crctab32( 105 ) = &H346ED9FC : crctab32( 106 ) = &HAD678846 : crctab32( 107 ) = &HDA60B8D0

        crctab32( 108 ) = &H44042D73 : crctab32( 109 ) = &H33031DE5 : crctab32( 110 ) = &HAA0A4C5F : crctab32( 111 ) = &HDD0D7CC9
        crctab32( 112 ) = &H5005713C : crctab32( 113 ) = &H270241AA : crctab32( 114 ) = &HBE0B1010 : crctab32( 115 ) = &HC90C2086
        crctab32( 116 ) = &H5768B525 : crctab32( 117 ) = &H206F85B3 : crctab32( 118 ) = &HB966D409 : crctab32( 119 ) = &HCE61E49F
        crctab32( 120 ) = &H5EDEF90E : crctab32( 121 ) = &H29D9C998 : crctab32( 122 ) = &HB0D09822 : crctab32( 123 ) = &HC7D7A8B4
        crctab32( 124 ) = &H59B33D17 : crctab32( 125 ) = &H2EB40D81 : crctab32( 126 ) = &HB7BD5C3B : crctab32( 127 ) = &HC0BA6CAD
        crctab32( 128 ) = &HEDB88320 : crctab32( 129 ) = &H9ABFB3B6 : crctab32( 130 ) = &H3B6E20C : crctab32( 131 ) = &H74B1D29A
        crctab32( 132 ) = &HEAD54739 : crctab32( 133 ) = &H9DD277AF : crctab32( 134 ) = &H4DB2615 : crctab32( 135 ) = &H73DC1683
        crctab32( 136 ) = &HE3630B12 : crctab32( 137 ) = &H94643B84 : crctab32( 138 ) = &HD6D6A3E : crctab32( 139 ) = &H7A6A5AA8

        crctab32( 140 ) = &HE40ECF0B : crctab32( 141 ) = &H9309FF9D : crctab32( 142 ) = &HA00AE27 : crctab32( 143 ) = &H7D079EB1
        crctab32( 144 ) = &HF00F9344 : crctab32( 145 ) = &H8708A3D2 : crctab32( 146 ) = &H1E01F268 : crctab32( 147 ) = &H6906C2FE
        crctab32( 148 ) = &HF762575D : crctab32( 149 ) = &H806567CB : crctab32( 150 ) = &H196C3671 : crctab32( 151 ) = &H6E6B06E7
        crctab32( 152 ) = &HFED41B76 : crctab32( 153 ) = &H89D32BE0 : crctab32( 154 ) = &H10DA7A5A : crctab32( 155 ) = &H67DD4ACC
        crctab32( 156 ) = &HF9B9DF6F : crctab32( 157 ) = &H8EBEEFF9 : crctab32( 158 ) = &H17B7BE43 : crctab32( 159 ) = &H60B08ED5
        crctab32( 160 ) = &HD6D6A3E8 : crctab32( 161 ) = &HA1D1937E : crctab32( 162 ) = &H38D8C2C4 : crctab32( 163 ) = &H4FDFF252
        crctab32( 164 ) = &HD1BB67F1 : crctab32( 165 ) = &HA6BC5767 : crctab32( 166 ) = &H3FB506DD : crctab32( 167 ) = &H48B2364B
        crctab32( 168 ) = &HD80D2BDA : crctab32( 169 ) = &HAF0A1B4C : crctab32( 170 ) = &H36034AF6 : crctab32( 171 ) = &H41047A60

        crctab32( 172 ) = &HDF60EFC3 : crctab32( 173 ) = &HA867DF55 : crctab32( 174 ) = &H316E8EEF : crctab32( 175 ) = &H4669BE79
        crctab32( 176 ) = &HCB61B38C : crctab32( 177 ) = &HBC66831A : crctab32( 178 ) = &H256FD2A0 : crctab32( 179 ) = &H5268E236
        crctab32( 180 ) = &HCC0C7795 : crctab32( 181 ) = &HBB0B4703 : crctab32( 182 ) = &H220216B9 : crctab32( 183 ) = &H5505262F
        crctab32( 184 ) = &HC5BA3BBE : crctab32( 185 ) = &HB2BD0B28 : crctab32( 186 ) = &H2BB45A92 : crctab32( 187 ) = &H5CB36A04
        crctab32( 188 ) = &HC2D7FFA7 : crctab32( 189 ) = &HB5D0CF31 : crctab32( 190 ) = &H2CD99E8B : crctab32( 191 ) = &H5BDEAE1D
        crctab32( 192 ) = &H9B64C2B0 : crctab32( 193 ) = &HEC63F226 : crctab32( 194 ) = &H756AA39C : crctab32( 195 ) = &H26D930A
        crctab32( 196 ) = &H9C0906A9 : crctab32( 197 ) = &HEB0E363F : crctab32( 198 ) = &H72076785 : crctab32( 199 ) = &H5005713
        crctab32( 200 ) = &H95BF4A82 : crctab32( 201 ) = &HE2B87A14 : crctab32( 202 ) = &H7BB12BAE : crctab32( 203 ) = &HCB61B38

        crctab32( 204 ) = &H92D28E9B : crctab32( 205 ) = &HE5D5BE0D : crctab32( 206 ) = &H7CDCEFB7 : crctab32( 207 ) = &HBDBDF21
        crctab32( 208 ) = &H86D3D2D4 : crctab32( 209 ) = &HF1D4E242 : crctab32( 210 ) = &H68DDB3F8 : crctab32( 211 ) = &H1FDA836E
        crctab32( 212 ) = &H81BE16CD : crctab32( 213 ) = &HF6B9265B : crctab32( 214 ) = &H6FB077E1 : crctab32( 215 ) = &H18B74777
        crctab32( 216 ) = &H88085AE6 : crctab32( 217 ) = &HFF0F6A70 : crctab32( 218 ) = &H66063BCA : crctab32( 219 ) = &H11010B5C
        crctab32( 220 ) = &H8F659EFF : crctab32( 221 ) = &HF862AE69 : crctab32( 222 ) = &H616BFFD3 : crctab32( 223 ) = &H166CCF45
        crctab32( 224 ) = &HA00AE278 : crctab32( 225 ) = &HD70DD2EE : crctab32( 226 ) = &H4E048354 : crctab32( 227 ) = &H3903B3C2
        crctab32( 228 ) = &HA7672661 : crctab32( 229 ) = &HD06016F7 : crctab32( 230 ) = &H4969474D : crctab32( 231 ) = &H3E6E77DB
        crctab32( 232 ) = &HAED16A4A : crctab32( 233 ) = &HD9D65ADC : crctab32( 234 ) = &H40DF0B66 : crctab32( 235 ) = &H37D83BF0

        crctab32( 236 ) = &HA9BCAE53 : crctab32( 237 ) = &HDEBB9EC5 : crctab32( 238 ) = &H47B2CF7F : crctab32( 239 ) = &H30B5FFE9
        crctab32( 240 ) = &HBDBDF21C : crctab32( 241 ) = &HCABAC28A : crctab32( 242 ) = &H53B39330 : crctab32( 243 ) = &H24B4A3A6
        crctab32( 244 ) = &HBAD03605 : crctab32( 245 ) = &HCDD70693 : crctab32( 246 ) = &H54DE5729 : crctab32( 247 ) = &H23D967BF
        crctab32( 248 ) = &HB3667A2E : crctab32( 249 ) = &HC4614AB8 : crctab32( 250 ) = &H5D681B02 : crctab32( 251 ) = &H2A6F2B94
        crctab32( 252 ) = &HB40BBE37 : crctab32( 253 ) = &HC30C8EA1 : crctab32( 254 ) = &H5A05DF1B : crctab32( 255 ) = &H2D02EF8D
    End Sub


    '*********************************************************
    'Назначение:Расчитывает контрольную сумму для файла
    'по алгоритму CRC32
    'Входы:Путь к файлу
    'Выходы: CRC32
    'am v1.0.0_030924_13:14:21
    'http://am.rusimport.ru
    'mailto:a_mitin@mail.ru
    '*********************************************************
    Public Function CalcCRC32_File(ByVal sFilename As String) As Long
        Dim arr() As Byte
        arr() = File2Array(sFilename)
        CalcCRC32_File = CalcCRC32_Arr(arr())
    End Function
    '*********************************************************
    'Назначение:Расчитывает контрольную сумму для массива байт
    'по алгоритму CRC32
    'Входы:Массив байт
    'Выходы: CRC32
    'am v1.0.0_030924_13:14:21
    'http://am.rusimport.ru
    'mailto:a_mitin@mail.ru
    '*********************************************************
    Public Function CalcCRC32_Arr(ByVal arr() As Byte) As Long
        Dim CRC As Long
        Dim lLenght As Long
        Dim i As Long
        Dim b( 0  To  3 ) As Byte
        Dim l As Long
        ' initialize crc
        CRC = &HFFFFFFFF
        lLenght = UBound(arr())
        For i =  0  To lLenght
            MemCopy(b( 0 ), CRC,  4 )
            l =  0 
            MemCopy(l, b( 1 ),  3 )
            'MemCopy b(0), l, 4 'это просто чтобы посмотреть как сдвинулось
            CRC = crctab32(arr(i) Xor CRC And &HFF) Xor (l)
        Next i
        ' invert result
        CRC = Not CRC
        CalcCRC32_Arr = CRC
    End Function
    '*********************************************************
    'Назначение:Расчитывает контрольную сумму для строки
    'по алгоритму CRC32
    'Входы:Строка
    'Выходы: CRC32
    'am v1.0.0_030924_13:14:21
    'http://am.rusimport.ru
    'mailto:a_mitin@mail.ru
    '*********************************************************
    Public Function CalcCRC32_String(ByVal sString As String) As Long
        Dim arr() As Byte
        arr() = sString
        CalcCRC32_String = CalcCRC32_Arr(arr())
    End Function


    Private Function File2Array(ByVal sPath As String) As Byte()
        Dim txt As String
        Dim sLine As String
        Dim fn As Long
        fn = FreeFile
        Dim TheBytes() As Byte
        ReDim TheBytes(FileLen(sPath) -  1 )
    Open (sPath) For Binary Access Read As fn
        Get #fn, , TheBytes()
        Close(fn)
        File2Array = TheBytes()
    End Function
End Module


Код: plaintext
arr() = File2Array(sFilename)

Ошибка Number of indices is less than the number of dimensions of the indexed array. Подчеркивает скобки arr()


Код: plaintext
1.
2.
Open (sPath) For Binary Access Read As fn
        Get #fn, , TheBytes()
        Close(fn)

Ошибка 'Open' is not declared. File I/O functionality is available in the 'Microsoft.VisualBasic' namespace.

Ошибка End of statement expected. Выдается в этом моменте For Binary Access Read As fn

Ошибка 'Get' statements are no longer supported. File I/O functionality is available in the 'Microsoft.VisualBasic' namespace.

Ошибка 'Close' is not declared. File I/O functionality is available in the 'Microsoft.VisualBasic' namespace.
...
Рейтинг: 0 / 0
вычисление контрольной суммы по алгоритму CRC32
    #35936688
Kasher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот что получилось при исправлении ошибок. Вдруг кому пригодится. Если есть какие замечание напишите пожалуйста. Написано под VB 2005.

Код: plaintext
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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
Module CCRC

    'вычисление контрольной суммы по алгоритму CRC32

    Private Declare Function timeGetTime Lib "winmm.dll" () As Long

    Private Declare Sub MemCopy Lib "kernel32" Alias _
            "RtlMoveMemory" (ByVal dest As String, ByVal src As String, _
            ByVal numbytes As Long)

    Private crctab32( 0  To  255 ) As Long
    Sub New()
        'заполним массив
        crctab32( 0 ) = &H0 : crctab32( 1 ) = &H77073096 : crctab32( 2 ) = &HEE0E612C : crctab32( 3 ) = &H990951BA

        crctab32( 4 ) = &H76DC419 : crctab32( 5 ) = &H706AF48F : crctab32( 6 ) = &HE963A535 : crctab32( 7 ) = &H9E6495A3
        crctab32( 8 ) = &HEDB8832 : crctab32( 9 ) = &H79DCB8A4 : crctab32( 10 ) = &HE0D5E91E : crctab32( 11 ) = &H97D2D988
        crctab32( 12 ) = &H9B64C2B : crctab32( 13 ) = &H7EB17CBD : crctab32( 14 ) = &HE7B82D07 : crctab32( 15 ) = &H90BF1D91
        crctab32( 16 ) = &H1DB71064 : crctab32( 17 ) = &H6AB020F2 : crctab32( 18 ) = &HF3B97148 : crctab32( 19 ) = &H84BE41DE
        crctab32( 20 ) = &H1ADAD47D : crctab32( 21 ) = &H6DDDE4EB : crctab32( 22 ) = &HF4D4B551 : crctab32( 23 ) = &H83D385C7
        crctab32( 24 ) = &H136C9856 : crctab32( 25 ) = &H646BA8C0 : crctab32( 26 ) = &HFD62F97A : crctab32( 27 ) = &H8A65C9EC
        crctab32( 28 ) = &H14015C4F : crctab32( 29 ) = &H63066CD9 : crctab32( 30 ) = &HFA0F3D63 : crctab32( 31 ) = &H8D080DF5
        crctab32( 32 ) = &H3B6E20C8 : crctab32( 33 ) = &H4C69105E : crctab32( 34 ) = &HD56041E4 : crctab32( 35 ) = &HA2677172
        crctab32( 36 ) = &H3C03E4D1 : crctab32( 37 ) = &H4B04D447 : crctab32( 38 ) = &HD20D85FD : crctab32( 39 ) = &HA50AB56B
        crctab32( 40 ) = &H35B5A8FA : crctab32( 41 ) = &H42B2986C : crctab32( 42 ) = &HDBBBC9D6 : crctab32( 43 ) = &HACBCF940
        crctab32( 44 ) = &H32D86CE3 : crctab32( 45 ) = &H45DF5C75 : crctab32( 46 ) = &HDCD60DCF : crctab32( 47 ) = &HABD13D59
        crctab32( 48 ) = &H26D930AC : crctab32( 49 ) = &H51DE003A : crctab32( 50 ) = &HC8D75180 : crctab32( 51 ) = &HBFD06116
        crctab32( 52 ) = &H21B4F4B5 : crctab32( 53 ) = &H56B3C423 : crctab32( 54 ) = &HCFBA9599 : crctab32( 55 ) = &HB8BDA50F
        crctab32( 56 ) = &H2802B89E : crctab32( 57 ) = &H5F058808 : crctab32( 58 ) = &HC60CD9B2 : crctab32( 59 ) = &HB10BE924
        crctab32( 60 ) = &H2F6F7C87 : crctab32( 61 ) = &H58684C11 : crctab32( 62 ) = &HC1611DAB : crctab32( 63 ) = &HB6662D3D
        crctab32( 64 ) = &H76DC4190 : crctab32( 65 ) = &H1DB7106 : crctab32( 66 ) = &H98D220BC : crctab32( 67 ) = &HEFD5102A
        crctab32( 68 ) = &H71B18589 : crctab32( 69 ) = &H6B6B51F : crctab32( 70 ) = &H9FBFE4A5 : crctab32( 71 ) = &HE8B8D433
        crctab32( 72 ) = &H7807C9A2 : crctab32( 73 ) = &HF00F934 : crctab32( 74 ) = &H9609A88E : crctab32( 75 ) = &HE10E9818

        crctab32( 76 ) = &H7F6A0DBB : crctab32( 77 ) = &H86D3D2D : crctab32( 78 ) = &H91646C97 : crctab32( 79 ) = &HE6635C01
        crctab32( 80 ) = &H6B6B51F4 : crctab32( 81 ) = &H1C6C6162 : crctab32( 82 ) = &H856530D8 : crctab32( 83 ) = &HF262004E
        crctab32( 84 ) = &H6C0695ED : crctab32( 85 ) = &H1B01A57B : crctab32( 86 ) = &H8208F4C1 : crctab32( 87 ) = &HF50FC457
        crctab32( 88 ) = &H65B0D9C6 : crctab32( 89 ) = &H12B7E950 : crctab32( 90 ) = &H8BBEB8EA : crctab32( 91 ) = &HFCB9887C
        crctab32( 92 ) = &H62DD1DDF : crctab32( 93 ) = &H15DA2D49 : crctab32( 94 ) = &H8CD37CF3 : crctab32( 95 ) = &HFBD44C65
        crctab32( 96 ) = &H4DB26158 : crctab32( 97 ) = &H3AB551CE : crctab32( 98 ) = &HA3BC0074 : crctab32( 99 ) = &HD4BB30E2
        crctab32( 100 ) = &H4ADFA541 : crctab32( 101 ) = &H3DD895D7 : crctab32( 102 ) = &HA4D1C46D : crctab32( 103 ) = &HD3D6F4FB
        crctab32( 104 ) = &H4369E96A : crctab32( 105 ) = &H346ED9FC : crctab32( 106 ) = &HAD678846 : crctab32( 107 ) = &HDA60B8D0

        crctab32( 108 ) = &H44042D73 : crctab32( 109 ) = &H33031DE5 : crctab32( 110 ) = &HAA0A4C5F : crctab32( 111 ) = &HDD0D7CC9
        crctab32( 112 ) = &H5005713C : crctab32( 113 ) = &H270241AA : crctab32( 114 ) = &HBE0B1010 : crctab32( 115 ) = &HC90C2086
        crctab32( 116 ) = &H5768B525 : crctab32( 117 ) = &H206F85B3 : crctab32( 118 ) = &HB966D409 : crctab32( 119 ) = &HCE61E49F
        crctab32( 120 ) = &H5EDEF90E : crctab32( 121 ) = &H29D9C998 : crctab32( 122 ) = &HB0D09822 : crctab32( 123 ) = &HC7D7A8B4
        crctab32( 124 ) = &H59B33D17 : crctab32( 125 ) = &H2EB40D81 : crctab32( 126 ) = &HB7BD5C3B : crctab32( 127 ) = &HC0BA6CAD
        crctab32( 128 ) = &HEDB88320 : crctab32( 129 ) = &H9ABFB3B6 : crctab32( 130 ) = &H3B6E20C : crctab32( 131 ) = &H74B1D29A
        crctab32( 132 ) = &HEAD54739 : crctab32( 133 ) = &H9DD277AF : crctab32( 134 ) = &H4DB2615 : crctab32( 135 ) = &H73DC1683
        crctab32( 136 ) = &HE3630B12 : crctab32( 137 ) = &H94643B84 : crctab32( 138 ) = &HD6D6A3E : crctab32( 139 ) = &H7A6A5AA8

        crctab32( 140 ) = &HE40ECF0B : crctab32( 141 ) = &H9309FF9D : crctab32( 142 ) = &HA00AE27 : crctab32( 143 ) = &H7D079EB1
        crctab32( 144 ) = &HF00F9344 : crctab32( 145 ) = &H8708A3D2 : crctab32( 146 ) = &H1E01F268 : crctab32( 147 ) = &H6906C2FE
        crctab32( 148 ) = &HF762575D : crctab32( 149 ) = &H806567CB : crctab32( 150 ) = &H196C3671 : crctab32( 151 ) = &H6E6B06E7
        crctab32( 152 ) = &HFED41B76 : crctab32( 153 ) = &H89D32BE0 : crctab32( 154 ) = &H10DA7A5A : crctab32( 155 ) = &H67DD4ACC
        crctab32( 156 ) = &HF9B9DF6F : crctab32( 157 ) = &H8EBEEFF9 : crctab32( 158 ) = &H17B7BE43 : crctab32( 159 ) = &H60B08ED5
        crctab32( 160 ) = &HD6D6A3E8 : crctab32( 161 ) = &HA1D1937E : crctab32( 162 ) = &H38D8C2C4 : crctab32( 163 ) = &H4FDFF252
        crctab32( 164 ) = &HD1BB67F1 : crctab32( 165 ) = &HA6BC5767 : crctab32( 166 ) = &H3FB506DD : crctab32( 167 ) = &H48B2364B
        crctab32( 168 ) = &HD80D2BDA : crctab32( 169 ) = &HAF0A1B4C : crctab32( 170 ) = &H36034AF6 : crctab32( 171 ) = &H41047A60

        crctab32( 172 ) = &HDF60EFC3 : crctab32( 173 ) = &HA867DF55 : crctab32( 174 ) = &H316E8EEF : crctab32( 175 ) = &H4669BE79
        crctab32( 176 ) = &HCB61B38C : crctab32( 177 ) = &HBC66831A : crctab32( 178 ) = &H256FD2A0 : crctab32( 179 ) = &H5268E236
        crctab32( 180 ) = &HCC0C7795 : crctab32( 181 ) = &HBB0B4703 : crctab32( 182 ) = &H220216B9 : crctab32( 183 ) = &H5505262F
        crctab32( 184 ) = &HC5BA3BBE : crctab32( 185 ) = &HB2BD0B28 : crctab32( 186 ) = &H2BB45A92 : crctab32( 187 ) = &H5CB36A04
        crctab32( 188 ) = &HC2D7FFA7 : crctab32( 189 ) = &HB5D0CF31 : crctab32( 190 ) = &H2CD99E8B : crctab32( 191 ) = &H5BDEAE1D
        crctab32( 192 ) = &H9B64C2B0 : crctab32( 193 ) = &HEC63F226 : crctab32( 194 ) = &H756AA39C : crctab32( 195 ) = &H26D930A
        crctab32( 196 ) = &H9C0906A9 : crctab32( 197 ) = &HEB0E363F : crctab32( 198 ) = &H72076785 : crctab32( 199 ) = &H5005713
        crctab32( 200 ) = &H95BF4A82 : crctab32( 201 ) = &HE2B87A14 : crctab32( 202 ) = &H7BB12BAE : crctab32( 203 ) = &HCB61B38

        crctab32( 204 ) = &H92D28E9B : crctab32( 205 ) = &HE5D5BE0D : crctab32( 206 ) = &H7CDCEFB7 : crctab32( 207 ) = &HBDBDF21
        crctab32( 208 ) = &H86D3D2D4 : crctab32( 209 ) = &HF1D4E242 : crctab32( 210 ) = &H68DDB3F8 : crctab32( 211 ) = &H1FDA836E
        crctab32( 212 ) = &H81BE16CD : crctab32( 213 ) = &HF6B9265B : crctab32( 214 ) = &H6FB077E1 : crctab32( 215 ) = &H18B74777
        crctab32( 216 ) = &H88085AE6 : crctab32( 217 ) = &HFF0F6A70 : crctab32( 218 ) = &H66063BCA : crctab32( 219 ) = &H11010B5C
        crctab32( 220 ) = &H8F659EFF : crctab32( 221 ) = &HF862AE69 : crctab32( 222 ) = &H616BFFD3 : crctab32( 223 ) = &H166CCF45
        crctab32( 224 ) = &HA00AE278 : crctab32( 225 ) = &HD70DD2EE : crctab32( 226 ) = &H4E048354 : crctab32( 227 ) = &H3903B3C2
        crctab32( 228 ) = &HA7672661 : crctab32( 229 ) = &HD06016F7 : crctab32( 230 ) = &H4969474D : crctab32( 231 ) = &H3E6E77DB
        crctab32( 232 ) = &HAED16A4A : crctab32( 233 ) = &HD9D65ADC : crctab32( 234 ) = &H40DF0B66 : crctab32( 235 ) = &H37D83BF0

        crctab32( 236 ) = &HA9BCAE53 : crctab32( 237 ) = &HDEBB9EC5 : crctab32( 238 ) = &H47B2CF7F : crctab32( 239 ) = &H30B5FFE9
        crctab32( 240 ) = &HBDBDF21C : crctab32( 241 ) = &HCABAC28A : crctab32( 242 ) = &H53B39330 : crctab32( 243 ) = &H24B4A3A6
        crctab32( 244 ) = &HBAD03605 : crctab32( 245 ) = &HCDD70693 : crctab32( 246 ) = &H54DE5729 : crctab32( 247 ) = &H23D967BF
        crctab32( 248 ) = &HB3667A2E : crctab32( 249 ) = &HC4614AB8 : crctab32( 250 ) = &H5D681B02 : crctab32( 251 ) = &H2A6F2B94
        crctab32( 252 ) = &HB40BBE37 : crctab32( 253 ) = &HC30C8EA1 : crctab32( 254 ) = &H5A05DF1B : crctab32( 255 ) = &H2D02EF8D
    End Sub


    'Назначение:Расчитывает контрольную сумму для файла
    'по алгоритму CRC32
    'Входы:Путь к файлу
    'Выходы: CRC32
    'http://am.rusimport.ru

    Public Function CalcCRC32_File(ByVal sFilename As String) As Long
        Dim arr() As Byte
        arr = File2Array(sFilename)
        CalcCRC32_File = CalcCRC32_Arr(arr)
    End Function

    'Назначение:Расчитывает контрольную сумму для массива байт
    'по алгоритму CRC32
    'Входы:Массив байт
    'Выходы: CRC32
    'http://am.rusimport.ru

    Public Function CalcCRC32_Arr(ByVal arr() As Byte) As Long
        Dim CRC As Long
        Dim lLenght As Long
        Dim i As Long
        Dim b( 0  To  3 ) As Byte
        Dim l As Long
        ' initialize crc
        CRC = &HFFFFFFFF
        lLenght = UBound(arr)
        For i =  0  To lLenght
            MemCopy(b( 0 ), CRC,  4 )
            l =  0 
            MemCopy(l, b( 1 ),  3 )
            CRC = crctab32(arr(i) Xor CRC And &HFF) Xor (l)
        Next i
        ' invert result
        CRC = Not CRC
        CalcCRC32_Arr = CRC
    End Function

    'Назначение:Расчитывает контрольную сумму для строки
    'по алгоритму CRC32
    'Входы:Строка
    'Выходы: CRC32
    'http://am.rusimport.ru

    Public Function CalcCRC32_String(ByVal sString As String) As Long
        Dim arr() As Byte
        ReDim arr(Len(sString))
        CalcCRC32_String = CalcCRC32_Arr(arr)
    End Function

    Private Function File2Array(ByVal sPath As String) As Byte()

        Dim fn As Long
        fn = FreeFile()
        Dim TheBytes() As Byte
        ReDim TheBytes(FileLen(sPath) -  1 )
        FileOpen(fn, sPath, OpenMode.Binary, OpenAccess.Read, OpenShare.LockRead)
        FileGet(fn, TheBytes)
        FileClose(fn)
        File2Array = TheBytes

    End Function

End Module
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
вычисление контрольной суммы по алгоритму CRC32
    #38793760
Фотография Аниме Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kasher
KasherВот что получилось при исправлении ошибок. Вдруг кому пригодится. Если есть какие замечание напишите пожалуйста. Написано под VB 2005.

Код: c#
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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
Module CCRC

    'вычисление контрольной суммы по алгоритму CRC32

    Private Declare Function timeGetTime Lib "winmm.dll" () As Long

    Private Declare Sub MemCopy Lib "kernel32" Alias _
            "RtlMoveMemory" (ByVal dest As String, ByVal src As String, _
            ByVal numbytes As Long)

    Private crctab32(0 To 255) As Long
    Sub New()
        'заполним массив
        crctab32(0) = &H0 : crctab32(1) = &H77073096 : crctab32(2) = &HEE0E612C : crctab32(3) = &H990951BA

        crctab32(4) = &H76DC419 : crctab32(5) = &H706AF48F : crctab32(6) = &HE963A535 : crctab32(7) = &H9E6495A3
        crctab32(8) = &HEDB8832 : crctab32(9) = &H79DCB8A4 : crctab32(10) = &HE0D5E91E : crctab32(11) = &H97D2D988
        crctab32(12) = &H9B64C2B : crctab32(13) = &H7EB17CBD : crctab32(14) = &HE7B82D07 : crctab32(15) = &H90BF1D91
        crctab32(16) = &H1DB71064 : crctab32(17) = &H6AB020F2 : crctab32(18) = &HF3B97148 : crctab32(19) = &H84BE41DE
        crctab32(20) = &H1ADAD47D : crctab32(21) = &H6DDDE4EB : crctab32(22) = &HF4D4B551 : crctab32(23) = &H83D385C7
        crctab32(24) = &H136C9856 : crctab32(25) = &H646BA8C0 : crctab32(26) = &HFD62F97A : crctab32(27) = &H8A65C9EC
        crctab32(28) = &H14015C4F : crctab32(29) = &H63066CD9 : crctab32(30) = &HFA0F3D63 : crctab32(31) = &H8D080DF5
        crctab32(32) = &H3B6E20C8 : crctab32(33) = &H4C69105E : crctab32(34) = &HD56041E4 : crctab32(35) = &HA2677172
        crctab32(36) = &H3C03E4D1 : crctab32(37) = &H4B04D447 : crctab32(38) = &HD20D85FD : crctab32(39) = &HA50AB56B
        crctab32(40) = &H35B5A8FA : crctab32(41) = &H42B2986C : crctab32(42) = &HDBBBC9D6 : crctab32(43) = &HACBCF940
        crctab32(44) = &H32D86CE3 : crctab32(45) = &H45DF5C75 : crctab32(46) = &HDCD60DCF : crctab32(47) = &HABD13D59
        crctab32(48) = &H26D930AC : crctab32(49) = &H51DE003A : crctab32(50) = &HC8D75180 : crctab32(51) = &HBFD06116
        crctab32(52) = &H21B4F4B5 : crctab32(53) = &H56B3C423 : crctab32(54) = &HCFBA9599 : crctab32(55) = &HB8BDA50F
        crctab32(56) = &H2802B89E : crctab32(57) = &H5F058808 : crctab32(58) = &HC60CD9B2 : crctab32(59) = &HB10BE924
        crctab32(60) = &H2F6F7C87 : crctab32(61) = &H58684C11 : crctab32(62) = &HC1611DAB : crctab32(63) = &HB6662D3D
        crctab32(64) = &H76DC4190 : crctab32(65) = &H1DB7106 : crctab32(66) = &H98D220BC : crctab32(67) = &HEFD5102A
        crctab32(68) = &H71B18589 : crctab32(69) = &H6B6B51F : crctab32(70) = &H9FBFE4A5 : crctab32(71) = &HE8B8D433
        crctab32(72) = &H7807C9A2 : crctab32(73) = &HF00F934 : crctab32(74) = &H9609A88E : crctab32(75) = &HE10E9818

        crctab32(76) = &H7F6A0DBB : crctab32(77) = &H86D3D2D : crctab32(78) = &H91646C97 : crctab32(79) = &HE6635C01
        crctab32(80) = &H6B6B51F4 : crctab32(81) = &H1C6C6162 : crctab32(82) = &H856530D8 : crctab32(83) = &HF262004E
        crctab32(84) = &H6C0695ED : crctab32(85) = &H1B01A57B : crctab32(86) = &H8208F4C1 : crctab32(87) = &HF50FC457
        crctab32(88) = &H65B0D9C6 : crctab32(89) = &H12B7E950 : crctab32(90) = &H8BBEB8EA : crctab32(91) = &HFCB9887C
        crctab32(92) = &H62DD1DDF : crctab32(93) = &H15DA2D49 : crctab32(94) = &H8CD37CF3 : crctab32(95) = &HFBD44C65
        crctab32(96) = &H4DB26158 : crctab32(97) = &H3AB551CE : crctab32(98) = &HA3BC0074 : crctab32(99) = &HD4BB30E2
        crctab32(100) = &H4ADFA541 : crctab32(101) = &H3DD895D7 : crctab32(102) = &HA4D1C46D : crctab32(103) = &HD3D6F4FB
        crctab32(104) = &H4369E96A : crctab32(105) = &H346ED9FC : crctab32(106) = &HAD678846 : crctab32(107) = &HDA60B8D0

        crctab32(108) = &H44042D73 : crctab32(109) = &H33031DE5 : crctab32(110) = &HAA0A4C5F : crctab32(111) = &HDD0D7CC9
        crctab32(112) = &H5005713C : crctab32(113) = &H270241AA : crctab32(114) = &HBE0B1010 : crctab32(115) = &HC90C2086
        crctab32(116) = &H5768B525 : crctab32(117) = &H206F85B3 : crctab32(118) = &HB966D409 : crctab32(119) = &HCE61E49F
        crctab32(120) = &H5EDEF90E : crctab32(121) = &H29D9C998 : crctab32(122) = &HB0D09822 : crctab32(123) = &HC7D7A8B4
        crctab32(124) = &H59B33D17 : crctab32(125) = &H2EB40D81 : crctab32(126) = &HB7BD5C3B : crctab32(127) = &HC0BA6CAD
        crctab32(128) = &HEDB88320 : crctab32(129) = &H9ABFB3B6 : crctab32(130) = &H3B6E20C : crctab32(131) = &H74B1D29A
        crctab32(132) = &HEAD54739 : crctab32(133) = &H9DD277AF : crctab32(134) = &H4DB2615 : crctab32(135) = &H73DC1683
        crctab32(136) = &HE3630B12 : crctab32(137) = &H94643B84 : crctab32(138) = &HD6D6A3E : crctab32(139) = &H7A6A5AA8

        crctab32(140) = &HE40ECF0B : crctab32(141) = &H9309FF9D : crctab32(142) = &HA00AE27 : crctab32(143) = &H7D079EB1
        crctab32(144) = &HF00F9344 : crctab32(145) = &H8708A3D2 : crctab32(146) = &H1E01F268 : crctab32(147) = &H6906C2FE
        crctab32(148) = &HF762575D : crctab32(149) = &H806567CB : crctab32(150) = &H196C3671 : crctab32(151) = &H6E6B06E7
        crctab32(152) = &HFED41B76 : crctab32(153) = &H89D32BE0 : crctab32(154) = &H10DA7A5A : crctab32(155) = &H67DD4ACC
        crctab32(156) = &HF9B9DF6F : crctab32(157) = &H8EBEEFF9 : crctab32(158) = &H17B7BE43 : crctab32(159) = &H60B08ED5
        crctab32(160) = &HD6D6A3E8 : crctab32(161) = &HA1D1937E : crctab32(162) = &H38D8C2C4 : crctab32(163) = &H4FDFF252
        crctab32(164) = &HD1BB67F1 : crctab32(165) = &HA6BC5767 : crctab32(166) = &H3FB506DD : crctab32(167) = &H48B2364B
        crctab32(168) = &HD80D2BDA : crctab32(169) = &HAF0A1B4C : crctab32(170) = &H36034AF6 : crctab32(171) = &H41047A60

        crctab32(172) = &HDF60EFC3 : crctab32(173) = &HA867DF55 : crctab32(174) = &H316E8EEF : crctab32(175) = &H4669BE79
        crctab32(176) = &HCB61B38C : crctab32(177) = &HBC66831A : crctab32(178) = &H256FD2A0 : crctab32(179) = &H5268E236
        crctab32(180) = &HCC0C7795 : crctab32(181) = &HBB0B4703 : crctab32(182) = &H220216B9 : crctab32(183) = &H5505262F
        crctab32(184) = &HC5BA3BBE : crctab32(185) = &HB2BD0B28 : crctab32(186) = &H2BB45A92 : crctab32(187) = &H5CB36A04
        crctab32(188) = &HC2D7FFA7 : crctab32(189) = &HB5D0CF31 : crctab32(190) = &H2CD99E8B : crctab32(191) = &H5BDEAE1D
        crctab32(192) = &H9B64C2B0 : crctab32(193) = &HEC63F226 : crctab32(194) = &H756AA39C : crctab32(195) = &H26D930A
        crctab32(196) = &H9C0906A9 : crctab32(197) = &HEB0E363F : crctab32(198) = &H72076785 : crctab32(199) = &H5005713
        crctab32(200) = &H95BF4A82 : crctab32(201) = &HE2B87A14 : crctab32(202) = &H7BB12BAE : crctab32(203) = &HCB61B38

        crctab32(204) = &H92D28E9B : crctab32(205) = &HE5D5BE0D : crctab32(206) = &H7CDCEFB7 : crctab32(207) = &HBDBDF21
        crctab32(208) = &H86D3D2D4 : crctab32(209) = &HF1D4E242 : crctab32(210) = &H68DDB3F8 : crctab32(211) = &H1FDA836E
        crctab32(212) = &H81BE16CD : crctab32(213) = &HF6B9265B : crctab32(214) = &H6FB077E1 : crctab32(215) = &H18B74777
        crctab32(216) = &H88085AE6 : crctab32(217) = &HFF0F6A70 : crctab32(218) = &H66063BCA : crctab32(219) = &H11010B5C
        crctab32(220) = &H8F659EFF : crctab32(221) = &HF862AE69 : crctab32(222) = &H616BFFD3 : crctab32(223) = &H166CCF45
        crctab32(224) = &HA00AE278 : crctab32(225) = &HD70DD2EE : crctab32(226) = &H4E048354 : crctab32(227) = &H3903B3C2
        crctab32(228) = &HA7672661 : crctab32(229) = &HD06016F7 : crctab32(230) = &H4969474D : crctab32(231) = &H3E6E77DB
        crctab32(232) = &HAED16A4A : crctab32(233) = &HD9D65ADC : crctab32(234) = &H40DF0B66 : crctab32(235) = &H37D83BF0

        crctab32(236) = &HA9BCAE53 : crctab32(237) = &HDEBB9EC5 : crctab32(238) = &H47B2CF7F : crctab32(239) = &H30B5FFE9
        crctab32(240) = &HBDBDF21C : crctab32(241) = &HCABAC28A : crctab32(242) = &H53B39330 : crctab32(243) = &H24B4A3A6
        crctab32(244) = &HBAD03605 : crctab32(245) = &HCDD70693 : crctab32(246) = &H54DE5729 : crctab32(247) = &H23D967BF
        crctab32(248) = &HB3667A2E : crctab32(249) = &HC4614AB8 : crctab32(250) = &H5D681B02 : crctab32(251) = &H2A6F2B94
        crctab32(252) = &HB40BBE37 : crctab32(253) = &HC30C8EA1 : crctab32(254) = &H5A05DF1B : crctab32(255) = &H2D02EF8D
    End Sub


    'Назначение:Расчитывает контрольную сумму для файла
    'по алгоритму CRC32
    'Входы:Путь к файлу
    'Выходы: CRC32
    'http://am.rusimport.ru

    Public Function CalcCRC32_File(ByVal sFilename As String) As Long
        Dim arr() As Byte
        arr = File2Array(sFilename)
        CalcCRC32_File = CalcCRC32_Arr(arr)
    End Function

    'Назначение:Расчитывает контрольную сумму для массива байт
    'по алгоритму CRC32
    'Входы:Массив байт
    'Выходы: CRC32
    'http://am.rusimport.ru

    Public Function CalcCRC32_Arr(ByVal arr() As Byte) As Long
        Dim CRC As Long
        Dim lLenght As Long
        Dim i As Long
        Dim b(0 To 3) As Byte
        Dim l As Long
        ' initialize crc
        CRC = &HFFFFFFFF
        lLenght = UBound(arr)
        For i = 0 To lLenght
            MemCopy(b(0), CRC, 4)
            l = 0
            MemCopy(l, b(1), 3)
            CRC = crctab32(arr(i) Xor CRC And &HFF) Xor (l)
        Next i
        ' invert result
        CRC = Not CRC
        CalcCRC32_Arr = CRC
    End Function

    'Назначение:Расчитывает контрольную сумму для строки
    'по алгоритму CRC32
    'Входы:Строка
    'Выходы: CRC32
    'http://am.rusimport.ru

    Public Function CalcCRC32_String(ByVal sString As String) As Long
        Dim arr() As Byte
        ReDim arr(Len(sString))
        CalcCRC32_String = CalcCRC32_Arr(arr)
    End Function

    Private Function File2Array(ByVal sPath As String) As Byte()

        Dim fn As Long
        fn = FreeFile()
        Dim TheBytes() As Byte
        ReDim TheBytes(FileLen(sPath) - 1)
        FileOpen(fn, sPath, OpenMode.Binary, OpenAccess.Read, OpenShare.LockRead)
        FileGet(fn, TheBytes)
        FileClose(fn)
        File2Array = TheBytes

    End Function

End Module


у меня вылетают ошибки
нашел код
Sub asd()
Dim tmpCRC As New CCRC
Dim c As Variant

c = tmpCRC.CalcCRC32_File("C:\test.test")

End Sub
ошибка модуль не является типом
сделал так
Public Sub asd()
CalcCRC32_File("D:\z.txt")
End Sub
ошибка
Помощник отладки управляемого кода "PInvokeStackImbalance" обнаружил неполадку в "C:\Users\Аниме Любитель\Documents\Visual Studio 2013\Projects\приложение\приложение\bin\Debug\приложение.vshost.exe".

visual studio 2013
как правильно использовать функцию контрольной суммы файла
очень жду ответа
пожалуйста
напишите пожалуйста
...
Рейтинг: 0 / 0
вычисление контрольной суммы по алгоритму CRC32
    #38793779
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аниме Любитель,

Это код для VB6, для VB.NET нужно поменять типы как минимум в API (Long -> Integer, Integer -> Short). Плюс полный рефакторинг кода
...
Рейтинг: 0 / 0
вычисление контрольной суммы по алгоритму CRC32
    #38793780
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
вычисление контрольной суммы по алгоритму CRC32
    #38793833
Фотография Аниме Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLADАниме Любитель,

Это код для VB6, для VB.NET нужно поменять типы как минимум в API (Long -> Integer, Integer -> Short). Плюс полный рефакторинг кода
это под visual basic net вродебы
полный рефакторинг это как?
VSVLADVSVLAD,

http://dotnet-snippets.com/snippet/calculate-crc32-hash-from-file/587
спасибо большое может получится
...
Рейтинг: 0 / 0
вычисление контрольной суммы по алгоритму CRC32
    #38794213
Фотография Аниме Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аниме Любитель,

спасибо
...
Рейтинг: 0 / 0
вычисление контрольной суммы по алгоритму CRC32
    #38794214
Фотография Аниме Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аниме Любитель,

большое извените за флуд просто реально работает спасибо большое
...
Рейтинг: 0 / 0
вычисление контрольной суммы по алгоритму CRC32
    #38794406
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLAD,

да нужно просто загуглить метод, 100 их )) или автор думает, он один такой проблемой озадачился? =)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / вычисление контрольной суммы по алгоритму CRC32
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]