ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Forum AtoutFox : Re: SIRET vérification - clé de contrôle (dernier chiffre)   

Sujet

rss Flux RSS des derniers messages

Vous devez vous identifier pour pouvoir poser une question ou répondre.

ven. 18 avril 2025, 10h33
foxlover
France France

atoutfox.public.association

Re: SIRET vérification - clé de contrôle (dernier chiffre)

bonjour francis
réponse de chatgpt que j'ai pas testé mais qui doit pas être loin de ce que tu veux faire.

Le 14e chiffre est une clé de contrôle calculée via l’algorithme de Luhn
✅ Algorithme de Luhn (résumé) :
Pour vérifier un numéro SIRET : Prenez les 13 premiers chiffres.
Appliquez l’algorithme de Luhn pour calculer le 14e chiffre attendu.
Comparez-le au 14e chiffre du SIRET.


FUNCTION GetLuhnKey(tcSiret13)
LOCAL i, nDigit, nTotal, nTmp, cDigit
nTotal = 0

* Parcourir les 13 chiffres de droite à gauche
FOR i = 13 TO 1 STEP -1
cDigit = SUBSTR(tcSiret13, i, 1)
nDigit = VAL(cDigit)

IF MOD(13 - i, 2) = 0
* Position paire (depuis la droite) : doubler
nTmp = nDigit * 2
IF nTmp > 9
nTmp = nTmp - 9
ENDIF
ELSE
* Position impaire (depuis la droite) : laisser tel quel
nTmp = nDigit
ENDIF

nTotal = nTotal + nTmp
ENDFOR

RETURN (10 - MOD(nTotal, 10)) % 10
ENDFUNC

Permalink : http://www.atoutfox.org/nntp.asp?ID=0000020265
20 196 messages dans le forum • Liste complète des messages

www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2025.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3