IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Clé de contrôle du RIO


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mars 2016
    Messages : 7
    Par défaut Clé de contrôle du RIO
    Bonjour le forum,

    Je souhaite comprendre le calcul de la clé de contrôle du RIO et le retranscrire sur un tableau Excel. Malheureusement je ne comprends pas le langage Python.
    J'ai trouvé ceci sur Wiki :

    def calculCCC( OO, Q, RRRRRR, EZABPQMCDU): # les paramètres sont de type chaîne, ex : "00"
    concatenation = OO + Q + RRRRRR + EZABPQMCDU
    ordre = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+" # caractères utilisés pour le codage (37 différents)

    a = b = c = 0 # initialisation de a, b et c

    for i in range(19): # boucle de 0 à 18, pour chaque index de position dans concatenation
    position = ordre.find(concatenation[i]) # on retrouve la position du caractère concatenation[i] dans ordre

    a = (1 * a + position) % 37 # calcul du nombre a, "% 37" pour modulo 37
    b = (2 * b + position) % 37
    c = (4 * c + position) % 37

    return ordre[a] + ordre[b] + ordre[c] # on encode a, b et c en leur caractères correspondants, et on concatène le tout


    Si quelqu'un peut m'aider en me donnant une exemple de calcul. J'ai joins le début de mes calculs dans le fichier Excel en PJ.
    Me

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Pardonne-moi mais ton code est abscons.

    Tu as encore le lien où tu l'as trouvé ? Tu l'as peut-être mal recopié.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mars 2016
    Messages : 7

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Comme ça c'est plus clair.

    Tu as la signification des arguments sur cette page, il suffit de les passer à la fonction, exactement dans le même ordre.

    Avec les balises code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    def calculCCC( OO,  Q,  RRRRRR,  EZABPQMCDU):
        """"Retourne le code RIO.
     
        Args:
        OO -- identifiant de l'opérateur 
        Q -- qualité du client: E (entreprise) ou P (particulier)
        RRRRRR -- identification du contrat
        CCC -- code de contrôle
        """
        concatenation = OO + Q + RRRRRR + EZABPQMCDU
        ordre = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+"
        a = b = c = 0
        for i in range(19):
            position  = ordre.find(concatenation[i]) 
            a = (1 * a + position) % 37
            b = (2 * b + position) % 37
            c = (4 * c + position) % 37
     
        return ordre[a] + ordre[b] + ordre[c]
    Bon, on ne nommerait pas les arguments de cette façon, mais je suppose qu'il s'agissait de reprendre les même termes que dans l'explication qui précède.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mars 2016
    Messages : 7
    Par défaut
    Merci mais je ne suis pas plus avancé. Visiblement tout semble clair pour toi mais pour moi cela ne change rien.
    Le fichier que j'ai mis en pièce jointe est tout ce que j'ai essayé de déchiffrer. Je souhaite appliquer cette fonction, ce langage python par des calculs et des fonctions Excel pour obtenir la clé de contrôle automatiquement en renseignant le numéro de téléphone, le 00, le Q et le RRRRRR.
    J'espère avoir été clair. Merci.

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par eddy1975 Voir le message
    Le fichier que j'ai mis en pièce jointe est tout ce que j'ai essayé de déchiffrer. Je souhaite appliquer cette fonction, ce langage python par des calculs et des fonctions Excel pour obtenir la clé de contrôle automatiquement en renseignant le numéro de téléphone, le 00, le Q et le RRRRRR.
    J'espère avoir été clair. Merci.
    Et vous voulez que quelqu'un écrive le code pour vous?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Comment empêcher la mise à jour d'un contrôle à l'écran ?
    Par JojoLaFripouille dans le forum Composants VCL
    Réponses: 4
    Dernier message: 19/09/2003, 12h52
  2. Codes de contrôle des imprimantes
    Par hetzel dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 21/03/2003, 17h17
  3. [ActiveX] Propriété "Picture" dans un contrôle util
    Par Ricou13 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 14/12/2002, 15h59
  4. [contrôle] dbDateTimePicker ???
    Par Fizgig dans le forum Composants VCL
    Réponses: 2
    Dernier message: 28/11/2002, 15h45
  5. [Kylix] Contrôle DBGrid
    Par KThrax dans le forum EDI
    Réponses: 1
    Dernier message: 10/05/2002, 14h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo