Calcul Clé Modulo [Divers] - Divers - Programmation
Marsh Posté le 08-07-2020 à 19:55:08
C'est pas une question qu'il faut poster à La Poste plutôt?
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
Marsh Posté le 09-07-2020 à 10:12:54
J'ai pas tout lu mais regarde cette page : https://forums.commentcamarche.net/ [...] recommande
Marsh Posté le 09-07-2020 à 11:44:18
tu aurais dû lire
c'est moi même qui avait donné la réponse pour les n° français sur cet autre forum
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
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
Marsh Posté le 09-07-2020 à 12:21:58
chris_lo a écrit : tu aurais dû lire |
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
Marsh Posté le 12-07-2020 à 18:52:27
chris_lo a écrit : Salut, |
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+,
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 ?