the checksum ( initially set to zero) is a 16_bit binary addition (
Merci à gilles et à patrice pour leurs solutions. Eric
-- Les Lapys le lapy world howto-contribution-forum pour SME http://leslapys.com
Real Phil
Voir aussi la fonction intégrée sCalculeCrc16(LigneLue)
Réal Phil ================================= "eric-leslapys" a écrit dans le message de news:45ce0a18$0$9902$
Bonjour,
ne maniant pas l"anglais a fond, quelqu'un peut'il m'aider dans cette fonction mathématique.
the checksum ( initially set to zero) is a 16_bit binary addition ( excluding parity bits if applicable) of all characters.
le checksum permettant un controle d'un chaine à transmettre ( socket ou liaison série)
en windev ça donne quoi
en clipper j'avais des fonctions crc16, ou 32 ou checksum d'une chaine mais la je craaaaaaaaaaque.
Merci eric
Voir aussi la fonction intégrée sCalculeCrc16(LigneLue)
Réal Phil
=================================
"eric-leslapys" <eflament@free.fr> a écrit dans le message de
news:45ce0a18$0$9902$426a74cc@news.free.fr...
Bonjour,
ne maniant pas l"anglais a fond, quelqu'un peut'il m'aider dans cette
fonction mathématique.
the checksum ( initially set to zero) is a 16_bit binary addition (
excluding parity bits if applicable) of all characters.
le checksum permettant un controle d'un chaine à transmettre ( socket ou
liaison série)
en windev ça donne quoi
en clipper j'avais des fonctions crc16, ou 32 ou checksum d'une chaine
mais la je craaaaaaaaaaque.
Voir aussi la fonction intégrée sCalculeCrc16(LigneLue)
Salut,
celle là, ça m'étonnerait qu'elle soit compatible avec autre chose qu'elle même...
ca existe en windev 7.5 ( j'ai pas encore évolué)
eric
A+
Romain PETIT
eric-leslapys avait prétendu :
Romain PETIT a écrit :
Real Phil vient de nous annoncer :
Voir aussi la fonction intégrée sCalculeCrc16(LigneLue)
celle là, ça m'étonnerait qu'elle soit compatible avec autre chose qu'elle même...
ca existe en windev 7.5 ( j'ai pas encore évolué)
Oui oui je sais.
Ce que je voulais dire, c'est que cette fonction n'est utilisable qu'entre applis WD, tout simplement parce qu'on ne connait pas la méthode de calcul de ce CRC (quel polynôme ? Quelle valeur initiale pour le CRC ?) et qu'il semble bien que peu (aucun ?) autre logiciel n'est compatible avec ce type de CRC16... (en tout cas ni MODBUS, ni XModem, ni aucun automate que j'ai pu connecter qui utilise un CRC16).
J'ai tenté en WD une autre méthode que celle donnée par Kristian Paradis (le lien de Gilles) mais elle est plus lente. Il s'agit de la méthode utilisant une table statique des 256 entiers pour calculer un CRC16 classique (x^16 + x^15 + x^2 + 1).
WD n'est pas bon pour les calculs rapides. Pour des trames d'automates de quelques centaines d'octets, c'est acceptable, mais si vous devez calculer des CRC16 ou des CRC32 pour de gros fichiers, mieux vaut se tourner vers des DLL en C.
Exemple : calcul d'un CRC16 pour un fichier de 1533253 octets (~1.5Mo)
- méthode 1 : K.Paradis ou E.Laurent (je crois que ce sont les mêmes méthodes, ils y a juste des différences au niveau de l'initialisation du CRC de départ qui diffère) http://groups.google.fr/group/fr.comp.developpement.agl.windev/browse_frm/thread/30808c7f37e98ea/7b14d3f0500148cf
-> 47 secondes
- méthode 2 : utilisation de la table statique
-> 67 secondes
- méthode 3 : utilisation d'un ressource externe (par exemple : http://www.lammertbies.nl/comm/software/index.html ou l'OCX CrcCtrl.ocx de Chris Amos)
-> 1 seconde (à peine)
Un bon tutoriel sur le sujet : http://dvsoft.developpez.com/Articles/CRC/
A+
-- Romain PETIT http://cerbermail.com/?O16kfXOFcq (cliquez sur le lien ci-dessus pour me contacter en privé)
eric-leslapys avait prétendu :
Romain PETIT a écrit :
Real Phil vient de nous annoncer :
Voir aussi la fonction intégrée sCalculeCrc16(LigneLue)
celle là, ça m'étonnerait qu'elle soit compatible avec autre chose qu'elle
même...
ca existe en windev 7.5 ( j'ai pas encore évolué)
Oui oui je sais.
Ce que je voulais dire, c'est que cette fonction n'est utilisable
qu'entre applis WD, tout simplement parce qu'on ne connait pas la
méthode de calcul de ce CRC (quel polynôme ? Quelle valeur initiale
pour le CRC ?) et qu'il semble bien que peu (aucun ?) autre logiciel
n'est compatible avec ce type de CRC16...
(en tout cas ni MODBUS, ni XModem, ni aucun automate que j'ai pu
connecter qui utilise un CRC16).
J'ai tenté en WD une autre méthode que celle donnée par Kristian
Paradis (le lien de Gilles) mais elle est plus lente.
Il s'agit de la méthode utilisant une table statique des 256 entiers
pour calculer un CRC16 classique (x^16 + x^15 + x^2 + 1).
WD n'est pas bon pour les calculs rapides.
Pour des trames d'automates de quelques centaines d'octets, c'est
acceptable, mais si vous devez calculer des CRC16 ou des CRC32 pour de
gros fichiers, mieux vaut se tourner vers des DLL en C.
Exemple : calcul d'un CRC16 pour un fichier de 1533253 octets (~1.5Mo)
- méthode 1 : K.Paradis ou E.Laurent (je crois que ce sont les mêmes
méthodes, ils y a juste des différences au niveau de l'initialisation
du CRC de départ qui diffère)
http://groups.google.fr/group/fr.comp.developpement.agl.windev/browse_frm/thread/30808c7f37e98ea/7b14d3f0500148cf
-> 47 secondes
- méthode 2 : utilisation de la table statique
-> 67 secondes
- méthode 3 : utilisation d'un ressource externe
(par exemple : http://www.lammertbies.nl/comm/software/index.html ou
l'OCX CrcCtrl.ocx de Chris Amos)
-> 1 seconde (à peine)
Un bon tutoriel sur le sujet :
http://dvsoft.developpez.com/Articles/CRC/
A+
--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Voir aussi la fonction intégrée sCalculeCrc16(LigneLue)
celle là, ça m'étonnerait qu'elle soit compatible avec autre chose qu'elle même...
ca existe en windev 7.5 ( j'ai pas encore évolué)
Oui oui je sais.
Ce que je voulais dire, c'est que cette fonction n'est utilisable qu'entre applis WD, tout simplement parce qu'on ne connait pas la méthode de calcul de ce CRC (quel polynôme ? Quelle valeur initiale pour le CRC ?) et qu'il semble bien que peu (aucun ?) autre logiciel n'est compatible avec ce type de CRC16... (en tout cas ni MODBUS, ni XModem, ni aucun automate que j'ai pu connecter qui utilise un CRC16).
J'ai tenté en WD une autre méthode que celle donnée par Kristian Paradis (le lien de Gilles) mais elle est plus lente. Il s'agit de la méthode utilisant une table statique des 256 entiers pour calculer un CRC16 classique (x^16 + x^15 + x^2 + 1).
WD n'est pas bon pour les calculs rapides. Pour des trames d'automates de quelques centaines d'octets, c'est acceptable, mais si vous devez calculer des CRC16 ou des CRC32 pour de gros fichiers, mieux vaut se tourner vers des DLL en C.
Exemple : calcul d'un CRC16 pour un fichier de 1533253 octets (~1.5Mo)
- méthode 1 : K.Paradis ou E.Laurent (je crois que ce sont les mêmes méthodes, ils y a juste des différences au niveau de l'initialisation du CRC de départ qui diffère) http://groups.google.fr/group/fr.comp.developpement.agl.windev/browse_frm/thread/30808c7f37e98ea/7b14d3f0500148cf
-> 47 secondes
- méthode 2 : utilisation de la table statique
-> 67 secondes
- méthode 3 : utilisation d'un ressource externe (par exemple : http://www.lammertbies.nl/comm/software/index.html ou l'OCX CrcCtrl.ocx de Chris Amos)
-> 1 seconde (à peine)
Un bon tutoriel sur le sujet : http://dvsoft.developpez.com/Articles/CRC/
A+
-- Romain PETIT http://cerbermail.com/?O16kfXOFcq (cliquez sur le lien ci-dessus pour me contacter en privé)
Romain PETIT
Romain PETIT a couché sur son écran :
l'OCX CrcCtrl.ocx de Chris Amos
Super dur à retrouver celui-là... Il faut aller en Chine... http://download.enet.com.cn/html/speed/5_030212000071220.html
(c'est gratuit mais pas libre, les sources étaient dispos en payant mais il semble que l'adresse ne réponde plus...)
A+
-- Romain PETIT http://cerbermail.com/?O16kfXOFcq (cliquez sur le lien ci-dessus pour me contacter en privé)
Romain PETIT a couché sur son écran :
l'OCX CrcCtrl.ocx de Chris Amos
Super dur à retrouver celui-là...
Il faut aller en Chine...
http://download.enet.com.cn/html/speed/5_030212000071220.html
(c'est gratuit mais pas libre, les sources étaient dispos en payant
mais il semble que l'adresse ne réponde plus...)
A+
--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)