Soyez le premier à donner votre avis sur cette source.
Vue 6 998 fois - Téléchargée 428 fois
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; namespace in_C { class Program { [STAThread] static void Main(string[] args) { string INSEE; long INSEE_STR; Console.WriteLine("==== VERIFICATION DE NUMERO INSEE ====\n"); Console.Write("Veuillez entrer le numéro INSEE à vérifier : "); INSEE = Console.In.ReadLine(); if (Int64.TryParse(INSEE, out INSEE_STR) == false){ Console.WriteLine("ERREUR : impossible de convertir votre chaine en entier."); Console.WriteLine("NOTE : Le numéro INSEE doit être composé de 13 digits."); Console.WriteLine("Impossible de continuer."); Console.ReadLine(); } if (INSEE.Length != 13) { Console.WriteLine("ERREUR : Le numéro entré n'est pas un INSEE valable."); Console.WriteLine("Impossible de continuer."); Console.ReadLine(); } else if ((INSEE.Substring(0, 1) == "1") || (INSEE.Substring(0, 1) == "2")) { int mois = Convert.ToInt32(INSEE.Substring(3, 2)); if (mois <= 0 || mois > 12) { Console.WriteLine("ERREUR : le mois (4e et 3e chiffres) est faux. Indiqué : " + mois + "."); Console.ReadLine(); } else { long modulo = INSEE_STR % 97; long clef = 97 - modulo; string first = INSEE.Substring(0, 1); string second = INSEE.Substring(1, 2); string third = INSEE.Substring(3, 2); string fourth = INSEE.Substring(5, 2); string fifth = INSEE.Substring(7, 3); string sixth = INSEE.Substring(10, 3); Console.WriteLine("SUCCES : La clef du numéro INSEE donné est " + clef + "."); Console.WriteLine("INFO : Numéro INSEE donné complété : " + first + "-" + second + "-" + third + "-" + fourth + "-" + fifth + "-" + sixth + "-" + clef); Console.WriteLine(); Console.Write("Souhaitez-vous que cet INSEE complété soit placé dans votre presse-papier ?\nAucun tiret ne sera ajouté n/y : "); string clpbrd = Console.In.ReadLine(); if (clpbrd == "y") { Clipboard.SetText(first + second + third + fourth + fifth + sixth + clef); Console.WriteLine("OK"); } Console.ReadLine(); } } else { Console.WriteLine("ERREUR : le premier chiffre " + INSEE.Substring(0, 1) + " est faux."); Console.WriteLine("NOTE : le premier chiffre correspond au sexe de la personne possédant le code."); Console.WriteLine("Impossible de continuer."); Console.ReadLine(); } } } }
29 sept. 2011 à 18:02
Je ne connais pas C#, mais il est super facile de comprendre ce code (qui n'est pas très compliqué en soit). Les variables sont bien nommées, le code est plutôt propre. J'ai eu un petit sourire en voyant qu'on pouvais copier le résultat dans le presse-papier :)
Bon, ça ne casse pas des briques, et c'est vrai que ça aurais plus ça place dans les snippets, cependant, c'est du bon code.
Attention tout de même:
- Quelques erreurs d'indentations
- Des ligne vide qui pourraient être supprimée
Sinon, rien à dire.
13 sept. 2011 à 08:58
En postant une source, on s'attend à recevoir des critiques, positives ou négatives, de la part de ses pairs ;) Ce serait dommage de se laisser abattre dès la 1ère remarque négative, non? Tout le monde passe par là (pour moi, par exemple, c'était ici: http://www.cppfrance.com/codes/SUPPRIMER-CHAINE-CARACTERES-FICHIER_33695.aspx).
Pour information, codyx.org regroupe des snippets, ou bout de code, bien utiles et facilement intégrable dans un développement. Une source est un développement plus abouti, qui fait un peu plus de choses qu'un "hello world". Ce que tu as posté aurait plutôt sa place sur Codyx. D'où le message de Seb, et le mien.
En évolution, tu peux par exemple encapsuler ton code dans une classe dédiée, que tu appelerais après saisie de l'utilisateur via boite de dialogue...
13 sept. 2011 à 02:17
12 sept. 2011 à 19:39
Mais bon, j'ose penser qu'on peut pardonner toute cette verbose, pour un jeune étudiant apprenant le C# ?
@Buno : effectivement, je ferai plus attention ultérieurement (si je reposte bien sur, l'accueil de sebmafate laisse à désirer).
Désolé.
@Piergel : oui, j'ai pensé la même chose... j'ai corrigé ma version en local :)
Merci ;)
12 sept. 2011 à 10:29
Juste un détail : le titre devrait plutôt être "Trouver la clé d'un numéro de sécu en donnant ses 13 premiers chiffres". En effet des codes INSEE il y en a plein : outre le numéro d'inscription au répertoire des personnes physiques (NIR - n° de sécurité sociale) on trouvera par exemple le code officiel géographique (COG - utilisé d’ailleurs sur les 8eme, 9eme et 10eme chiffres du numéro de sécu pour coder la commune de naissance), les SIREN, SIRET, APE...
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.