CALCULER LA CLÉ DE LA SÉCURITÉ SOCIALE FRANCAISE

Messages postés
1803
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
7 juillet 2019
- - Dernière réponse : Neroc
Messages postés
2
Date d'inscription
vendredi 14 septembre 2007
Statut
Membre
Dernière intervention
12 décembre 2007
- 12 déc. 2007 à 20:07
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41910-calculer-la-cle-de-la-securite-sociale-francaise

Afficher la suite 
japee
Messages postés
1803
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
7 juillet 2019
-
Et la Corse ? Tu as oublié la Corse (2A et 2B).

Vont pas être contents, les Corses, il va y avoir de la vendetta ^^
Il est vrai que ça complique un peu l'algo, mais il est tellement simple à la base...

Allez, au travail !

P-S: je sais, j'ai mis dans le même paragraphe les mots "travail" et "Corse", je ne l'ai pas fait exprès...
cs_Delphiprog
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
23 -
Pour la spécificité Corse (depuis 1976), voir le paragraphe 4.1 sur la page :
http://xml.insee.fr/schema/nir.html#Clé_NIR-description
f0xi
Messages postés
4307
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
26 -
mouai bof ... par contre utilise StrToInt64Def(..., 0) sinon on as une erreur quand le champ est vide...
pense egalement a indenter ton code et sincerement, ce genre de code a plutot sa place dans les snippets plutot que les sources.

ah, je corrige egalement le tag "expert" pour "debutant" ... pas besoin d'etre expert pour utiliser un modulo.
bjim
Messages postés
2
Date d'inscription
vendredi 26 septembre 2003
Statut
Membre
Dernière intervention
20 novembre 2008
-
Pour simplifier : en 1 ligne (sauf pour la Corse :<) dans ton Edit1Change tu peux écrire:

label1.Caption := Format('%.2d',[97-Trunc(StrToCurrDef(edit1.text, 0)) mod 97]);
japee
Messages postés
1803
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
7 juillet 2019
-
Pouquoi utiliser currency ?
Avec Int64, on fait l'économie d'un Trunc :

Label1.Caption := Format('%.2d', [97 - StrToInt64Def(Edit1.text, 0) mod 97]);
japee
Messages postés
1803
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
7 juillet 2019
-
Pour la Corse :
- on remplace le caractère 'A' ou 'B' par un '0' (zéro) ;
- si la lettre est 'A', on soustrait au nombre de 13 chiffres la valeur 1 000 000 et si la lettre est 'B' on soustrait 2 000 000, ce qui revient à mon avis à remplacer '2A' par '19' et '2B' par '18'.

J'ai retrouvé une fonction que j'avais faite, à voir si on peut l'optimiser, mais le principe est bon :

function GetNIRKey(S: string): string;
var
Value: Int64;
Dep: string;
begin
Result := '';
Dep := UpperCase(Copy(S, 6, 2));
if Dep = '2A' then
S := StringReplace(S, '2A', '19', [])
else if Dep = '2B' then
S := StringReplace(S, '2B', '18', []);
Value := StrToInt64Def(S, 0);
if Value <> 0 then
Result := Format('%.2d', [97 - (Value mod 97)]);
end;
ane2007
Messages postés
2
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
21 mars 2007
-
Merci JAPEE
chavithra
Messages postés
11
Date d'inscription
dimanche 25 avril 2004
Statut
Membre
Dernière intervention
21 avril 2007
-
c'est quoi une clé de sécurité social?
cs_Delphiprog
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
23 -
La réponse se situe ici : http://fr.wikipedia.org/wiki/Code_INSEE
manu1506
Messages postés
54
Date d'inscription
jeudi 13 novembre 2003
Statut
Membre
Dernière intervention
25 avril 2012
-
D'ailleur on l'appelle à tort "numéro de sécurité sociale" alors que son vrai nom est "Numéro INSEE"
Neroc
Messages postés
2
Date d'inscription
vendredi 14 septembre 2007
Statut
Membre
Dernière intervention
12 décembre 2007
-
Plus précisément le N° de sécu s'appelle Numéro d'Incription au Répertoire ou NIR