|
|
CRC számítás
A Delphi rejtett képességei 3. rész
|
|
Példaprogram letöltése
12901 bájt
|
A Delphi unit-jai között találunk egy olyan algoritmust, mely képes CRC értéket számítani. Ezt felhasználva nekünk már csak az a teendőnk, hogy készítsünk hozzá egy komponenst, mellyel egyszerűbben felhasználhatjuk ezt az algoritmust és így már akár egy adott memóriaterület, akár egy állomány CRC értékét könnyedén megtudhatjuk.
|
A mellékelt példaprogram megnyitása előtt a CRC.pas-ban lévő komponenst telepítenie kell a Delphi alá.
A Delphi CD-jén, ahol az elmúlt hetekben bemutatott állomány tömörítő algoritmus is megtalálható, szintén ott kapott helyett a CRC ellenőrző algoritmus is. Az \Info\Extras\Zlib\Src könyvtárban találunk egy crc32.c állományt. Igaz, hogy az algoritmus C nyelvű, de egyszerűsége miatt ebből könnyedén készíthetünk egy Delphi komponenst.
A komponens Execeute eljárását meghívva egy memória terület ellenőrző összegét állíthatjuk elő. Hogy előzőleg mit töltöttünk erre a memória területre, az nyilvánvalóan tetszőleges. Első paraméteréként ennek a memóriaterületnek a címét kell átadnunk. Második paraméterben pedig a terület méretét adjuk meg bájtban.
Ha egy állomány tartalma alapján számított CRC számra vagyunk kíváncsiak, akkor a FileCRC eljárást kell meghívnunk. Paraméterként a kérdéses állomány nevét adjuk át.
Mindkét esetben a Value property-ből tudhatjuk meg a CRC számot.
Megvalósításhoz az Execute eljárásban bájtonként végigmegyünk a kapott memória területen és minden bájtra elvégezzük a CRC számítást a Delphi CD-jén található algoritmus segítségével, melyet a Calculate nevű belső függvényünk valósít meg.
A FileCRC szintén az Execute-t használja fel, annyi csak a különbség, hogy az állomány számára először lefoglalunk egy memória terület, majd betöltjük a teljes állományt, végül az Execute-t meghívjuk átadva az állományt tartalmazó memóriaterületet.
|
Könyv
Ez a cikk megtalálható ebben a könyvben:
Delphi Software Offline 2001 évkönyv 177. oldal
Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!
|