[Divers] Calcul Clé Modulo

Calcul Clé Modulo [Divers] - Divers - Programmation

Marsh Posté le 08-07-2020 à 17:22:16    

Salut,
 
je dois générer une liste de numéro de suivi recommandé qui comporte une clé modulo
 
pour les français, un numéro ressemble à ça : 2C 144 799 3692 0
le numéro à traiter est donc 1447993692 et la clé modulo est 0
 
j'ai trouvé la manip (chiffres impairs * 1 + chiffres pairs * 3 et on retranche le reste) pour trouver la clé, tout fonctionne pour mes envois français
 
par contre je sèche complètement pour les étrangers :(
Un numéro de suivi recommandé pour les étrangers ressemble à ça : RK 86 762 233 2
 
naïvement j'ai appliqué la même méthode mais je ne tombe pas sur la même clé
 
si quelqu'un a une idée ?

Reply

Marsh Posté le 08-07-2020 à 17:22:16   

Reply

Marsh Posté le 08-07-2020 à 19:55:08    

C'est pas une question qu'il faut poster à La Poste plutôt? :o

Reply

Marsh Posté le 09-07-2020 à 08:46:06    

ça risque de prendre du temps pour avoir une réponse avec eux :/
 
et je suppose qu'ils ont pris un truc standard, mais j'ignore lequel

Reply

Marsh Posté le 09-07-2020 à 10:12:54    

J'ai pas tout lu mais regarde cette page : https://forums.commentcamarche.net/ [...] recommande


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 09-07-2020 à 11:44:18    

tu aurais dû lire :P
 
c'est moi même qui avait donné la réponse pour les n° français sur cet autre forum :D
 
mais là je cherche pour les étrangers et ça n'est pas le même algorithme
j'ai essayé de mon côté la plupart des méthodes de calcul des codes barres (modulo 10, 43, 97) rien ne fonctionne :(

Message cité 1 fois
Message édité par chris_lo le 09-07-2020 à 11:51:06
Reply

Marsh Posté le 09-07-2020 à 12:14:48    

À moins de connaitre ce qui est vraiment appliqué, ça va être difficile de trouver la solution sans un jeu de données.
 
Par contre ton explication n'est pas terrible pour la version FR, mais le lien que tu as donné vers Wikipedia explique ça très bien : https://fr.wikipedia.org/wiki/EAN_1 [...] 4le_EAN_13


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 09-07-2020 à 12:21:58    

chris_lo a écrit :

tu aurais dû lire :p
 
c'est moi même qui avait donné la réponse pour les n° français sur cet autre forum :D
 
mais là je cherche pour les étrangers et ça n'est pas le même algorithme
j'ai essayé de mon côté la plupart des méthodes de calcul des codes barres (modulo 10, 43, 97) rien ne fonctionne :(


Désolé, là où j'ai consulté la page, les feuilles de style de commentcamarche.net sont filtrées par le proxy du coup, ça rend le site très difficile à lire. J'ai aps eu le courage. Effectivement, j'ai vu ton pseudo en y retourant  :sleep:


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 12-07-2020 à 18:52:27    

chris_lo a écrit :

Salut,
 
je dois générer une liste de numéro de suivi recommandé qui comporte une clé modulo
 
pour les français, un numéro ressemble à ça : 2C 144 799 3692 0
le numéro à traiter est donc 1447993692 et la clé modulo est 0
 
j'ai trouvé la manip (chiffres impairs * 1 + chiffres pairs * 3 et on retranche le reste) pour trouver la clé, tout fonctionne pour mes envois français
 
par contre je sèche complètement pour les étrangers :(
Un numéro de suivi recommandé pour les étrangers ressemble à ça : RK 86 762 233 2
 
naïvement j'ai appliqué la même méthode mais je ne tombe pas sur la même clé
 
si quelqu'un a une idée ?

Normalement, ce qui est appliqué devrait être la norme SP10 de l'union postale internationale, non ?
La spec est ici : http://www.upu.int/uploads/tx_sbdownloader/S10-12.pdf
Ton numéro y ressemble beaucoup, c'est normalement comme suit : [A-Z]{2}[0-9]{8}([0-9]|X) [A-Z]{2} ou :
[A-Z]{2} deux lettres, code de service, pour ton exemple, RK : les codes entre RA et RZ indiquent qu'il s'agit d'une lettre recommandée ( registered letter )
[0-9]{8} 8 chiffres : identificateur de la lettre
([0-9]|X) soit un checksum sur un chiffre soit un X si on estime que les services concernés ne seront pas en mesure d'exploiter le checksum (dans la dernière version de la norme, je ne vois plus mention de ce X, donc c'est peut être plus en vigueur)
[A-Z]{2} code ISO du pays qui a émis le code S10 en question (donc FR si c'est envoyé par la France)
 
Pour le calcul du checksum :
1) Faire la somme S suivante  
Chiffre 1 * 8 +
Chiffre 2 * 6 +
Chiffre 3 * 4 +
Chiffre 4 * 2 +
Chiffre 5 * 3 +
Chiffre 6 * 5 +
Chiffre 7 * 9 +
Chiffre 8 * 7  
2) Calculer le reste R de la division de S par 11
3) calculer la différence D 11 - R
Si D est sur un seul chiffre, c'est le checksum
Si D vaut 10, le checksum vaut 0
Si D vaut 11, le checksum vaut 5
 
Dans ton cas, on a :
 
8 * 8 = 64
6 * 6 = 36
7 * 4 = 28
6 * 2 = 12
2 * 3 = 6
2 * 5 = 10
3 * 9 = 27
3 * 7 = 21
S = 64 + 36 + 28 + 12 + 6 + 10 + 27 + 21 = 204
204 = (18 * 11 ) + 6
R = 6
D = 11 - 6 = 5
Donc le checksum vaut 5 (et on ne devrait pas avoir un 2 dans ton exemple).
Et si ça part de France, le S10 serait RK867622335FR
 
A+,


Message édité par gilou le 12-07-2020 à 19:10:56

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 14-07-2020 à 19:19:56    

Très intéressant, merci pour la recherche gilou. :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed