ClavierVirtuel
Messages postés3Date d'inscriptionsamedi 31 août 2019StatutMembreDernière intervention 1 novembre 2019
-
31 août 2019 à 04:35
Whismeril
Messages postés18416Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 1 juin 2023
-
1 sept. 2019 à 10:19
Bonjour!
Je travaille sur un projet personnel dont le langage de progammation que j'utilise est wlangage (j'utilise Windev 20).
J'aimerais génerer un Matricule fait d'une combinaison de lettre et chiffres de façon aléatoire et automatique.
Je suis blocqué et je sollicite de l'aide. Merci à vous
Whismeril
Messages postés18416Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 1 juin 2023624 31 août 2019 à 09:11
Bonjour
A ma connaissance, parmi les membres actifs réguliers, il n'y a pas de codeurs Windev.
Donc l'aide qui pourrait t'être apportée se limiterait à du pseudo code.
Cependant, il va te falloir être un peu plus précis sur ta demande, car avec le peu d'éléments que tu as donné, la seule réponse que l'on peut te faire pour l'instant est:
Génère aléatoirement une lettre ou un chiffre et concatène le avec les caractères précédents, et ce jusqu'à avoir assez de caractères.
Si tu veux mieux, il va falloir nous dire quelle est la partie de cet algorithme qui te pose problème, préciser
s'il y a un formalisme, par exemple, 5 lettres, 3 chiffres et 3 lettres,
s'il y a des chiffres ou des lettres interdits, par exemple pas de 0 ni de O (voire de Q) pour limiter les confusions
s'il y a des majuscules et des minuscules ou seulement l'un des 2
Par contre, je peux attirer ton attention, sur un point potentiellement bloquant.
Qui dit matricule, dit unique. Que ce matricule soit destiné à des personnes, des animaux ou des objets, un même numéro ne doit pas être attribué 2 fois, même si la première attribution ne semble plus utile (personne ayant quitté "l'environnement", animal décédé, objet détruit, etc...) pour des raisons d'historique, le matricule ne peut pas être réutilisé.
Le fait de générer de façon continue le numéro de matricule, ne pose aucun soucis, avec l'unicité, c'est la raison pour laquelle, les matricules définit avant l'aire informatique suivent une logique de progression (immatriculation de véhicule, numéro de sécurité sociale, etc...)
Par contre, en cas de génération aléatoire, il faut vérifier cette unicité.
L'algorithme auquel on pense de suite est:
Faire Générer un matricule Chercher dans les matricules existants, si ce numéro est déjà attribué Tant le matricule existe déjà
Cet algorithme fonctionne très bien, si le format du matricule permet un nombre de combinaison très supérieur à la population attendue.
Par exemple, si le matricule fait 6 caractères (1 million de combinaisons) et que la population maximum est de 1000 trucs, il y a peu de chance de générer un matricule existant, et si c'est le cas, aussi peu de chance que le 2eme essai existe et aussi peu de chance que le 3eme existe, etc...
A l'inverse si ton matricule fait 3 caractères (1000 combinaisons), quand tu auras atteint 900 trucs, tu auras 9 chances sur 10 que le numéro généré existe, et 9 chances sur 10 que le 2eme essai existe etc... Ça peut durer un moment, et quand tu auras atteint 990 trucs ça peut tourner en boucle sans jamais s'arrêter.
Si la population possible dépasse la moitié des combinaisons, alors je te déconseille d'utiliser cet algorithme. Il est bien plus efficace
de générer par avance toutes les combinaisons possible de façon progressive,
de stocker toutes ces combinaisons dans la base de données,
au besoin d'en piocher une aléatoirement et de l'enlever des combinaisons disponibles
La génération initiale pourra durer un certain temps, mais peu importe, il te suffit de le faire avant de livrer le logiciel au client, et ensuite quand il aura besoin d'un matricule, cela prendra quelques millisecondes, alors que par vérification, cela peut durer plusieurs minutes et tu auras un client pas content du tout.
ClavierVirtuel
Messages postés3Date d'inscriptionsamedi 31 août 2019StatutMembreDernière intervention 1 novembre 2019 1 sept. 2019 à 00:13
Salut Merci pour ta proposition!
En réalité je veux coder un Logiciel de paie et j'ai des salaries
Que je veux inserer (1000 salaries par exemple)
Je veux que lors de l'inscription, je puisse les donner des Matricule automatiquement
1 sept. 2019 à 00:13
En réalité je veux coder un Logiciel de paie et j'ai des salaries
Que je veux inserer (1000 salaries par exemple)
Je veux que lors de l'inscription, je puisse les donner des Matricule automatiquement