CRC 16
  Home FAQ Contact Sign in
it.comp.lang.delphi only
 
Advanced search
POPULAR GROUPS

more...

it.comp.lang.delphi Profile…
 Up
CRC 16         


Author: scriptors
Date: Mar 13, 2007 01:52

ho trovato in rete un po di esempi anche se tutte "Procedure"

problema:

ho una serie di byte dei quali calcolare il relativo CRC16
una volta calcolato devo inserire i due byte in una posizione definita

mi servirebbe, data una certa stringa (stringa perchè mi risulta più
facile in base alle mie conoscenze attuali di delphi... praticamente
stringa composta dai codici ASCII dey bytes in questione), di
calcolarne il CRC16

secondo me dovrei fare una function e non una procedure ... qualche
help ???

implementation

procedure CalcCRC16(p: pointer; n: integer; var crc16: word);
const
crc16table: array[0..255] of word = (
$0000, $c0c1, $c181, $0140, $c301, $03c0, $0280, $c241,
$c601, $06c0, $0780, $c741, $0500...
Show full article (2.74Kb)
2 Comments
Re: CRC 16         


Author: Andrea Laforgia
Date: Mar 13, 2007 02:02

scriptors ha scritto:
> secondo me dovrei fare una function e non una procedure ... qualche
> help ???

La procedura in questione ha un parametro per riferimento: usalo.

--

questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad abuse@newsland.it
no comments
Re: CRC 16         


Author: Alex
Date: Mar 13, 2007 09:36

Mi sembra di capire:

- passi il puntatore al 1° elemento della stringa (p)
- passi la lunghezza della stringa (n)
- passi una word per il risultato (crc16)

Nota: nel tuo caso, passa crc16 inizializzata a 0 (poiché 0 xor n = n)
le AnsiString credo facciano casino visto che potrebbero non essere
contigue quindi rimani su normali "string" 255 caratteri.

Esempio:
var
ugo: string;
ugocrc: word;
begin
ugocrc:= 0;
ugo:= 'cippirimerlo';
CalcCRC16(cippirimerlo[1], byte(cippirimerlo[0]), ugocrc),
ShowMessage(IntToStr(ugocrc));
end;

scriptors ha scritto:
> ho trovato in rete un po di esempi anche se tutte "Procedure"
>
> problema:
>
> ho una serie di byte dei quali calcolare il relativo CRC16
> una volta calcolato devo inserire...
Show full article (3.45Kb)
no comments