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

Langage Delphi Discussion :

Lecture de carte d'identité


Sujet :

Langage Delphi

  1. #1
    Membre confirmé
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Février 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2006
    Messages : 537
    Points : 460
    Points
    460
    Par défaut Lecture de carte d'identité
    Bonjour,
    Avec l'aide d'un article, je cherche à inclure des informations se trouvant sur une carte d'identité (belge) dans un programme.

    Le problème, c'est que je n'arrive pas à récupérer toutes les infos disponibles.
    Voici un exemple:
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    unit Unit1;
     
    interface
     
    uses
       Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
       Dialogs, EIDLIBCTRLLib_TLB, StdCtrls, XPMan;
     
    type
       TForm1 = class(TForm)
          Button1: TButton;
          Edit1: TEdit;
          XPManifest1: TXPManifest;
          Edit2: TEdit;
          Edit3: TEdit;
          procedure Button1Click(Sender: TObject);
       private
        { Private declarations }
          FEID: TEIDlib;
       public
        { Public declarations }
       end;
     
    var
       Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.Button1Click(Sender: TObject);
    var Handle: integer;
       Imap: IMapCollection;
       certif: ICertifCheck;
    begin
       FEID := TEIDlib.Create(self);
       Form1.FEID.Init('', 0, 0, Handle); // Initialisation
       Form1.FEID.GetID(Imap, certif);
       Form1.Edit1.Text := Imap.GetValue('Name'); // Ok
       Form1.Edit2.Text := Imap.GetValue('FirstName1'); // Ok
       Form1.Edit3.Text := Imap.GetValue('Municipality'); // ça ne fonctionne pas
       Form1.Edit4.Text := Imap.GetValue('Sex'); // ça ne fonctionne pas                                                           
       Form1.FEID.Exit;
    end;
     
    end.
    Je n'ai mit que 2 valeurs qui ne fonctionnent pas, mais il y en a d'autres.
    Avec le programme fourni avec le lecteur de carte, ces valeurs existent.

    Un ptit coup de main serait bien venu...
    Merci.

    André
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait !

  2. #2
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Es-tu sûr que ce sont les bons noms de champs ? Où trouves-tu la documentation sur ces API ?
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  3. #3
    Membre confirmé
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Février 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2006
    Messages : 537
    Points : 460
    Points
    460
    Par défaut
    sjrd, merci de te pencher sur mon probleme.
    Je joint la documentation à ce message.

    André
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait !

  4. #4
    Membre confirmé
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Février 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2006
    Messages : 537
    Points : 460
    Points
    460
    Par défaut
    Bon ben voila, j'ai trouvé...
    En fait depuis la documentation, les noms de certaines données ont changés.

    André
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait !

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 101
    Points : 132
    Points
    132
    Par défaut
    Citation Envoyé par andreditdd Voir le message
    Bon ben voila, j'ai trouvé...
    En fait depuis la documentation, les noms de certaines données ont changés.

    André
    Bonsoir tous le monde

    J'arrive un peu tard vu la date du premier post mais ça peut toujours servir !

    Si jamais ça peut aider j'en ai trouvées quelques unes qui fonctionnent aussi,
    mais comme toi, je ne les ai pas toutes , mais si ça peut aider...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      self.Memo1.Lines.Add('Nom: '+lMap.GetValue('Name'));
      self.Memo1.Lines.Add('Nationalité: '+lMap.GetValue('Nationality'));
      self.Memo1.Lines.Add('Date de naissance: '+lMap.GetValue('BirthDate'));
      self.Memo1.Lines.Add('Sexe: '+lMap.GetValue('Gender'));
      self.Memo1.Lines.Add('NationalNumber:'+lMap.GetValue('NationalNumber'));
      self.Memo1.Lines.Add('CardNumber: '+lMap.GetValue('CardNumber'));
      self.Memo1.Lines.Add('ChipNumber: '+lMap.GetValue('ChipNumber'));
    Si j'en trouve d'autres je complèterai

    Amitiés Hepha1970
    Windows 7 / Debian 8 jessie / Kali 2 / Nas Synology ds214se / Arduino Mega 2560 / Raspberry Pi 3

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 101
    Points : 132
    Points
    132
    Par défaut
    En voiçi d'autres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    self.Memo1.Lines.Add('IssuingMunicipality:'+lMap.GetValue('IssuingMunicipality'));
    self.Memo1.Lines.Add('BeginValidityDate:'+lMap.GetValue('BeginValidityDate'));
    self.Memo1.Lines.Add('EndValidityDate: '+lMap.GetValue('EndValidityDate'));
    Form1.CheckBox1.Checked := lmap.GetValue('Minority'); // Minorité Etendue
    Form1.CheckBox2.Checked := lmap.GetValue('WhiteCane'); // Canne blanche
    Form1.CheckBox3.Checked := lmap.GetValue('YellowCane'); // Canne Jaune
    Form1.Edit19.Text := lmap.GetValue('NobilityTitle'); // Titre de Noblesse
    il en reste d'autres... patience


    Ne fonctionnent pas pour l'instant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Form1.Edit7.Text := lmap.GetValue('BirthLocation'); // Lieux de Naissance
    Form1.Edit9.Text := lmap.GetValue('AddrData'); // Adresse  
    Form1.Edit10.Text := lmap.GetValue('Number'); // Numéro   
    Form1.Edit11.Text := lmap.GetValue('BoxNumber'); // Boite  
    Form1.Edit13.Text := lmap.GetValue('ZipCode'); // Code Postal
    Form1.Edit14.Text := lmap.GetValue('Municipality'); //  Localité  
    Form1.Edit15.Text := lmap.GetValue('Country'); //  Pays
    J'ai bien trouvé quelques infos sur le sujet, mais je ne parvient pas à trouver comment les exploiter sous delphi.

    Merci avant tous aux membres du forum "windev" pour le partage des informations.
    Je ne suis en aucun cas celui qui a inventé l'eau chaude, je ne fait que partage mes connaissances et donner quelques explications :

    Si je me suis trompé sur quelque chose n'hésitez pas à me reprendre !

    //////////////////////////////////////////////////////////
    // Beugnies Johan (JoTech)
    // Date : 06/2007
    // Code de Lecture de la carte d'identité Belge
    //
    // Fonctionne avec "Belgian eID Run-time Version 2.5.9
    //////////////////////////////////////////////////////////
    //
    // Ce code est a placer dans un boutton pour la lecture de la carte d'identité Belge

    // Remise a zéro des champs de saisie
    //Raz()

    chCardID est une chaîne
    chCardName est une chaîne
    chCardFirstName1 est une chaîne
    chCardFirstName2 est une chaîne
    chCardFirstName3 est une chaîne
    chCardBirthDate est une Date
    chCardBirthPlace est une chaîne
    chCardNationalNumber est une chaîne
    chCardNationality est une chaîne
    chCardGender est une chaîne
    chCardBeginValidityDate est une Date
    chCardEndValidityDate est une Date
    chCardIssuingMunicipality est une chaîne

    chCardStreet est une chaîne
    chCardHouseNumber est une chaîne
    chCardBoxNumber est une chaîne
    chCardMunicipality est une chaîne
    chCardZIPCode est une chaîne
    chCardCountry est une chaîne

    LaPhoto est un tableau de 10000 entier sur 1
    bPicture est un Buffer
    intCpt est un entier
    intDim est un entier

    eHandle est un entier

    // Déclaration des objets
    objetEID est un objet Automation dynamique
    objetEIDStatus est un objet Automation dynamique
    objetEIDCheck est un objet Automation dynamique
    objetEIDData est un objet Automation dynamique


    // Initialisation de l'objet et
    // Positionnement sur le bloc pour la lecture de des informations "Général"
    objetEID = allouer un objet OLE "EIDLibCtrl.EIDLib"
    objetEIDStatus = objetEID>>Init("",0,0,&eHandle)
    objetEIDStatus = objetEID>>GetID(objetEIDData,objetEIDCheck)

    // Teste sur le retour du code
    // Procedure récupérer sur le forum "GeneralCode" et implanté ici
    // Pour tester toutes les erreurs éventuel lié à la lecture de la carte
    SI objetEIDStatus>>GetGeneral() <> BEID_OK ALORS
    Erreur("Error N° "+objetEIDStatus>>GetGeneral(),"", GeneralCode(objetE
    IDStatus>>GetGeneral()))
    RETOUR
    SINON
    // on peut ici mettre du code pour activer un boutton de récupération des informations !!!
    FIN

    Message("Lecture Informations d'identité ...")
    Multitâche(15)

    chCardID = objetEIDData>>GetValue("CardNumber")
    chCardBeginValidityDate = objetEIDData>>GetValue("BeginValidityDate")
    chCardEndValidityDate = objetEIDData>>GetValue("EndValidityDate")

    chCardName = UnicodeVersAnsi(AnsiVersUnicode(objetEIDData>>GetValue("Name"), alphabetUTF8) )
    chCardFirstName1 = UnicodeVersAnsi(AnsiVersUnicode(objetEIDData>>GetValue("FirstName1"), alphabetUTF8) )
    chCardFirstName2 = UnicodeVersAnsi(AnsiVersUnicode(objetEIDData>>GetValue("FirstName2"), alphabetUTF8) )
    chCardFirstName3 = UnicodeVersAnsi(AnsiVersUnicode(objetEIDData>>GetValue("FirstName3"), alphabetUTF8) )
    chCardBirthDate = objetEIDData>>GetValue("BirthDate")
    chCardBirthPlace = UnicodeVersAnsi(AnsiVersUnicode(objetEIDData>>GetValue("BirthPlace"), alphabetUTF8) )
    chCardNationalNumber = objetEIDData>>GetValue("NationalNumber")
    chCardNationality = objetEIDData>>GetValue("Nationality")
    chCardGender = objetEIDData>>GetValue("Gender")
    chCardIssuingMunicipality = UnicodeVersAnsi(AnsiVersUnicode(objetEIDData>>GetValue("IssuingMunicipality"), alphabetUTF8) )

    Message("Lecture de l'adresse ...")
    Multitâche(15)
    // Positionnement sur le bloc pour la lecture de des informations "Adresse"
    objetEID>>GetAddress(objetEIDData,objetEIDCheck)
    chCardStreet = UnicodeVersAnsi(AnsiVersUnicode(objetEIDData>>GetValue("Street"), alphabetUTF8) )
    chCardBoxNumber = objetEIDData>>GetValue("BoxNumber")
    chCardZIPCode = objetEIDData>>GetValue("ZIPCode")
    chCardMunicipality = UnicodeVersAnsi(AnsiVersUnicode(objetEIDData>>GetValue("Municipality"), alphabetUTF8) )
    chCardCountry = objetEIDData>>GetValue("Country")


    Message("Lecture de l'image ...")
    Multitâche(15)
    // Positionnement sur le bloc pour la lecture de l'information "Image"
    objetEID>>GetPicture(objetEIDData,objetEIDCheck)
    LaPhoto = objetEIDData>>GetValue("Picture")
    intDim=Dimension(LaPhoto)
    FOR intCpt = 1 TO intDim
    Jauge(intCpt,intDim,"Conversion de l'image")
    bPicture+=Caract(LaPhoto[intCpt])
    END
    Multitâche(10)
    Jauge()
    // Sauvegarde dans le fichier jpeg dans le repertoire de l'application le nom correspond au numéro de carte
    fSauveTexte(fRepEnCours()+"\"+chCardID+".jpg",bPicture)
    Message("")

    // Affecté ci-dessous toute les champs de saisie / sélecteur genre / image
    // Je vous ai laissé le code ci-dessous en remarque, a vous d'affecter vos champs de saisie ou de les renomer

    // Affectation de l'image au champ image "Image_eID"
    //Image_eID = bPicture

    //chID est une chaîne = Milieu(chCardID,1,3)+"-"+Milieu(chCardID,4,7)+"-"+M
    ilieu(chCardID,11,2)
    //Saisie_Numero_eID = chID
    //Saisie_Date_validité_debut = chCardBeginValidityDate
    //Saisie_Date_validité_fin = chCardEndValidityDate
    //Saisie_Commune_Emission = chCardIssuingMunicipality

    //Saisie_Nom = chCardName
    //Saisie_Prenom = chCardFirstName1
    //Saisie_Adresse = chCardStreet
    //Saisie_CodePostal = chCardZIPCode
    //Saisie_Localite = chCardMunicipality
    //Saisie_Genre = chCardGender
    //SI chCardGender = "M" ALORS
    // Sél_Genre = 1
    //SINON
    // Sél_Genre = 2
    //FIN

    //Saisie_Nationnalite = chCardNationality

    //chNum_NN est une chaîne = Milieu(chCardNationalNumber,1,2)+"."+Milieu(chCar
    dNationalNumber,3,2)+"."+Milieu(chCardNationalNumber,5,2)+"-"+Milieu(chCardNa
    tionalNumber,7,3)+"."+Milieu(chCardNationalNumber,10,2)
    //Saisie_NumeroNational = chNum_NN

    //Saisie_Lieu_Naissance =chCardBirthPlace
    //Saisie_Date_Naissance = chCardBirthDate


    objetEID>>Exit()
    libérer objetEID
    libérer objetEIDStatus
    libérer objetEIDCheck
    libérer objetEIDData
    Une idée pour pouvoir lire l'adresse ?

    Amitiés Hepha1970
    Windows 7 / Debian 8 jessie / Kali 2 / Nas Synology ds214se / Arduino Mega 2560 / Raspberry Pi 3

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    pc_Street 		 = SansEspace(F_UTF8VersAnsi(oAddress>>GetValue("Street"))+ " " + oAddress>>GetValue("HouseNumber") + " " + oAddress>>GetValue("BoxNumber"))
    	pc_Zip 			 = oAddress>>GetValue("ZIPCode")
    	pc_Municipality  = Majuscule(F_UTF8VersAnsi(oAddress>>GetValue("Municipality")))
    	pc_Country		 = Majuscule(oAddress>>GetValue("Country"))
    Voilà pour l'adresse

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 101
    Points : 132
    Points
    132
    Par défaut
    Super

    Merçi
    Windows 7 / Debian 8 jessie / Kali 2 / Nas Synology ds214se / Arduino Mega 2560 / Raspberry Pi 3

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Lecture eiD Carte identité
    Par thierry007 dans le forum VB.NET
    Réponses: 4
    Dernier message: 18/03/2014, 12h12
  2. Lecteur de carte d'identité EID
    Par thierry007 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 26/05/2007, 10h35
  3. [WD10] lecture NMTEA carte GPS
    Par IsabelleC dans le forum Windev Mobile
    Réponses: 1
    Dernier message: 10/05/2007, 13h27
  4. [Débutant]Carte d'identités dans JList
    Par Bakaar dans le forum Composants
    Réponses: 1
    Dernier message: 23/05/2006, 22h56
  5. Lecture de carte SD impossible
    Par Bouki dans le forum Périphériques
    Réponses: 6
    Dernier message: 18/08/2005, 16h35

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