CODING CRC32 DENGAN VB 6.0

Private crcTable(0 To 255) As Long 'crc32

Private Function CRC32(ByRef bArrayIn() As Byte, ByVal lLen As Long, Optional ByVal lcrc As Long = 0) As Long
'bArrayIn adalah array byte dari file yang dibaca
'lLen adalah ukuran atau size file

Dim lCurPos As Long 'Current position untuk iterasi proses array bArrayIn
Dim lTemp As Long 'Variabel temp hasil perhitungan

BuildTable

If lLen = 0 Then Exit Function 'keluar fungsi apabila ukuran file = 0
lTemp = lcrc Xor &HFFFFFFFF

For lCurPos = 0 To lLen
lTemp = (((lTemp And &HFFFFFF00) \ &H100) And &HFFFFFF) Xor (crcTable((lTemp And 255) Xor bArrayIn(lCurPos)))
Next lCurPos

CRC32 = lTemp Xor &HFFFFFFFF
End Function

Private Function BuildTable() As Boolean
Dim i As Long, x As Long, crc As Long
Const limit = &HEDB88320

For i = 0 To 255
crc = i
For x = 0 To 7
If crc And 1 Then
crc = (((crc And &HFFFFFFFE) \ 2) And &H7FFFFFFF) Xor limit
Else
crc = ((crc And &HFFFFFFFE) \ 2) And &H7FFFFFFF
End If
Next
crcTable(i) = crc
Next i
End Function