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

OpenOffice & LibreOffice Discussion :

Récupérer le contenu d'une carte d'identité belge [LibreOffice][Tableur]


Sujet :

OpenOffice & LibreOffice

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 211
    Points : 168
    Points
    168
    Billets dans le blog
    1
    Par défaut Récupérer le contenu d'une carte d'identité belge
    Bonjour,

    Nous sommes une association sans but lucratif belge et organisons des événements où l'identité de chaque participant est nécessaire.
    Jusqu'à présent, nous demandons la carte d'identité de la personne et introduisons les renseignements "à la main" dans une feuille Calc.

    Je me demande s'il n'est pas possible, via un peu de code de récupérer le contenu des différents champs affichés dans la fenêtre du lecteur de carte EID belge et de les introduire dans une feuille Calc.
    Je connecte le lecteur de carte à l'ordi puis en enfichant la carte d'identité dedans, le contenu légal apparaît dans leur champ respectif à l'intérieur de la fenêtre du logiciel de lecture.

    Je n'ai aucune idée de la méthode à employer. Mais c'est faisable puisque les logiciels communaux le font très bien.

    Je travaille avec LibreOffice et sous Debian.

    Merci pour votre aide.

  2. #2
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Points : 1 493
    Points
    1 493
    Billets dans le blog
    1
    Par défaut
    Bonjou Papy Octet
    Ah ce vieux problème qui m"a hanté des années durant !
    En théorie,r le ministère fournit tous les outils, en pratique... cela manque de pédagogie !
    Bref, j'ai fini par trouver une solution qui n'est peut-être pas la plus efficace mais qui fonctionne.
    Dans le paquet fourni par le ministère, il y a quelques utilitaires en mode console qui permettent de voir le contenu.

    Récuperer les données d'une carte d'identité*:
    Eidenv
    L'utilitaire eidenv en mode console est utilisée pour l'accès aux données à partir des cartes d'identité électronique
    (comme les cartes nationales d'identité électroniques) qui pourraient ne pas être présents dans PKCS # 15 mais disponibles dans les fichiers personnalisés sur la carte. Les données peuvent être imprimé à l'écran ou utilisés par d'autres programmes via les variables d'environnement.
    Affichage brut dans une boite de dialogue iancé par openoffice/LibtreOffice:
    On peut appeler cette routine par un bouton sur lequel on clique après avoir placé la carte dans le lecteur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub testShell
    'Le code ascii du guillemet est 34 asc() et chr() permettent d'atteindre le code ascii d'un caractère 
    cQuote = Chr( 34 )
       Shell( "bash -c " + cQuote + "eidenv >/tmp/AAAA.txt"+cQuote )
    End Sub
    on mémorise le contenu dans le répertoire /tmp dans un fichier AAAA.txt
    On peut appeler cette routine par un bouton sur lequel on clique après avoir placé la carte dans le lecteur
    Récupération dans une msgbox
    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
    Sub testShell
    'Le code ascii du guillemet est 34 asc() et chr() permettent d'atteindre le code ascii d'un caractère 
    cQuote = Chr( 34 )
       Shell( "bash -c " + cQuote + "eidenv >/tmp/AAAA.txt"+cQuote )
    vNomFichier = "/tmp/AAAA.txt"
    ' Génère un descripteur de fichier libre, Définit un numéro de fichier libre
    vNumFichier = Freefile
    ' Ouvre le fichier (en mode lecture)
    
    Open vNomFichier For Input As vNumFichier
    ' Vérifie si la fin du fichier a été atteinte
    While not eof(vNumFichier)
    ' Lit une ligne
    Line Input #vNumFichier, vLigne
    
    vMessage = vMessage & vLigne & Chr(13)
    wend   
    ' Ferme le fichier
    Close #vNumFichier
    Msgbox vMessage
    
    End Sub
    Amélioration:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat AAAA.txt|cut -d":" -f2|cut -d" " -f2-
    Cete instruction ne garde que les texte et pas les noms des champs.
    cat AAAA.txt|cut -d":" -f2|cut -d" " -f2-

    Amélioration 2 - on ne sort que les données.
    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
    Sub testShell
    'Le code ascii du guillemet est 34 asc() et chr() permettent d'atteindre le code ascii d'un caractère 
    cQuote = Chr( 34 )
       Shell( "bash -c " + cQuote + "eidenv|cut -d':' -f2|cut -d' ' -f2- >/tmp/AAAA.txt" +cQuote )
    vNomFichier = "/tmp/AAAA.txt"
    ' Génère un descripteur de fichier libre, Définit un numéro de fichier libre
    vNumFichier = Freefile
    ' Ouvre le fichier (en mode lecture)
    Open vNomFichier For Input As vNumFichier
    ' Vérifie si la fin du fichier a été atteinte
    While not eof(vNumFichier)
    ' Lit une ligne
    Line Input #vNumFichier, vLigne
    vMessage = vMessage & vLigne & Chr(13)
    wend   
    ' Ferme le fichier
    Close #vNumFichier
    Msgbox vMessage
    
    End Sub
    Il suffit d'appliquer ce code à un bouton et on affiche le contenu dans une boite de dialogue.
    Après, on en fait cequ'on veut
    Voir l'exemple !CarteIdentieRecup.odt

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 211
    Points : 168
    Points
    168
    Billets dans le blog
    1
    Par défaut Récupération contenu carte d'identité belge
    Bonjour Michel,

    Quel boulot magnifique

    Un tout tout grand MERCI pour ce travail et ton partage.
    Ceci va m'éviter bien des heures de recherches. Je teste sans tarder.

    MERCI.
    A+

  4. #4
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Points : 1 493
    Points
    1 493
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Papy Octet Voir le message
    Bonjour Michel,

    Quel boulot magnifique

    Un tout tout grand MERCI pour ce travail et ton partage.
    Ceci va m'éviter bien des heures de recherches. Je teste sans tarder.

    MERCI.
    A+
    Très heureux si cela peut servir, j'avais commencé ce travail peu avant ma pension (si ! je suis un dino de l'informatique )
    et finalement il est resté sur un disque dur !
    Si il y a un soucis, fais signe, j'essayerai de surveiller ce post
    A+

  5. #5
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 211
    Points : 168
    Points
    168
    Billets dans le blog
    1
    Par défaut eidenv ?
    Bonjour Michel,

    Moi aussi je deviens un "dinosaure" : pensionné depuis 2 ans

    Je teste les codes que tu as proposés mais je butte dès le départ : eidenv n'est pas installé sur ma Debian 8 et je n'arrive pas à installer les paquets suggérés dans Ubuntu : "beidgui_3.5.2.dfsg-10ubuntu3_amd64.deb" et "beid-tools_3.5.2.dfsg-10ubuntu3_amd64.deb". La paquet "beid-common_3.5.2.dfsg-10ubuntu3_amd64.deb" s'est installé normalement.

    Le lecteur eid-viewer fonctionne correctement.

    A+

  6. #6
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Points : 1 493
    Points
    1 493
    Billets dans le blog
    1
    Par défaut
    Bonjour
    j'utilise linux mint mais j'ai cherché pour une Debian et voilà quelques idées :
    essaye (tiré de http://wiki.yobi.be/index.php?title=Belgian_eID&redirect=no#eidenv )
    Linux: OpenSC Middleware
    Installation
    belpic, the Belgian middleware, is a modified version of OpenSC, let's try the plain OpenSC:
    A priori le paquet existe, voir https://packages.debian.org/search?keywords=opensc
    Package opensc

    wheezy (oldstable) (utils): Smart card utilities with support for PKCS#15 compatible cards
    0.12.2-3: amd64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 s390x sparc
    jessie (stable) (utils): Smart card utilities with support for PKCS#15 compatible cards
    0.14.0-2: amd64 arm64 armel armhf i386 mips mipsel powerpc ppc64el s390x
    stretch (testing) (utils): Smart card utilities with support for PKCS#15 compatible cards
    0.16.0-3: amd64 arm64 armel armhf i386 mips mips64el mipsel ppc64el s390x
    Sinon, ce paquet existe dans la version SID
    Liste des fichiers du paquet opensc dans sid pour l'architecture i386

    /etc/opensc/opensc.conf
    /usr/bin/cardos-tool
    /usr/bin/cryptoflex-tool
    /usr/bin/dnie-tool
    /usr/bin/eidenv
    pour installer ajoute les backports à sources.list

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    su
    Password:
    debian:/home/human# nano /etc/apt/sources.list
    Ajoute les lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    # Backports repository
    deb http://httpredir.debian.org/debian jessie-backports main contrib non-free
    Met à jour
    Pour la méthode voir éventuellement https://wiki.debian.org/fr/Backports
    tiré de ce site:
    Le dépôt des rétroportages est désactivé par défaut. Donc, pour installer un paquet rétroporté, il faut l'indiquer de façon explicite.

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    debian:/home/human# aptitude -t jessie-backports install iceweasel
    L'option -t spécifie que c'est la version de jessie-backports qui doit être utilisée.

    Petit plus: je viens de voir une utilisation de eidenv en mode console avec variables d'environnement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $ eidenv --exec /bin/bash
    $ echo $BELPIC_NAME
    Teuwen
    $ exit

  7. #7
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Points : 1 493
    Points
    1 493
    Billets dans le blog
    1
    Par défaut
    Je confirme apres avoir essayé sur une autre machine :eidenv se trouve dans le paquet opensc qu'il suffit d'installer.

  8. #8
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 211
    Points : 168
    Points
    168
    Billets dans le blog
    1
    Par défaut Erreur d'exécution
    Bonjour Michel,

    J'ai installé opensc depuis le gestionnaire de paquet.
    En mode console, plus de problème, je récupère bien les données de la carte d'identité.

    La macro suggérée mais elle ne fait rien que le fichier AAAA.txt existe ou pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub testShell
    'Le code ascii du guillemet est 34 asc() et chr() permettent d'atteindre le code ascii d'un caractère 
    cQuote = Chr( 34 )
       Shell( "BASH -c " + cQuote + "eidenv >/home/guy/Documents/Temp/AAAA.txt"+cQuote )
    End Sub
    mais cette instruction ne fait rien. Aucune écriture dans le fichier.

    J'efface le fichier "AAAA.txt" puis je lance une autre macro :
    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
     
    Sub testShell_2
    'Le code ascii du guillemet est 34 asc() et chr() permettent d'atteindre le code ascii d'un caractère 
    cQuote = Chr( 34 )
       Shell( "bash -c" + cQuote + "eidenv >/home/guy/Documents/Temp/AAAA.txt" + cQuote )
    vNomFichier = "/home/guy/Documents/Temp/AAAA.txt"
    ' Génère un descripteur de fichier libre, Définit un numéro de fichier libre
    vNumFichier = Freefile
    ' Ouvre le fichier (en mode lecture)
     
    Open vNomFichier For Input As vNumFichier
    ' Vérifie si la fin du fichier a été atteinte
    While not eof(vNumFichier)
    ' Lit une ligne
    Line Input #vNumFichier, vLigne
     
    vMessage = vMessage & vLigne & Chr(13)
    wend   
    ' Ferme le fichier
    Close #vNumFichier
    Msgbox vMessage
     
    End Sub
    Et j'ai le message d'erreur
    Erreur d'exécution BASIC.
    Erreur d'E/S de périphérique
    à la ligne d'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Open vNomFichier For Input As vNumFichier
    et aucun fichier AAAA.txt n'est créé.

    Si je crée manuellement le fichier en question, je n'ai plus le message d'erreur mais une fois à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    While not eof(vNumFichier)
    on saute à la fin de la macro sans rien faire à l'affichage du MsgBox qui ne contient rien..

    Que faire ?
    Merci.

  9. #9
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Points : 1 493
    Points
    1 493
    Billets dans le blog
    1
    Par défaut
    Ok on peut arranger cela;
    pour moi le problème vient de la gestion du répertoire temporaire /tmp
    Normalement sa configuration permet à tout le monde d'y écrire mais on ne peut lire que ces propres fichiers. Sur certaines machines cela marche mais comme j'ai beaucoup 'bricolé les droits d'accès -certaines versions tournent de pepuis plusieurs années )....
    En l'occurance j'ai constaté que cela ne marchait pas sur ma dernière installation.
    Donc, petit changement de localistation du fichier que j'avais bêtment appelé AAAA.txt: je le place à la racine de l'utilisateur ~/AAAA.txt

    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
    Sub testShell
    'Le code ascii du guillemet est 34 asc() et chr() permettent d'atteindre le code ascii d'un caractère 
    cQuote = Chr( 34 )
    ' ----- changements ---------------------------------------------------
     Shell( "bash -c " + cQuote + "eidenv >~/AAAA.txt"+cQuote )
    vNomFichier = "AAAA.txt"
    
    ' Génère un descripteur de fichier libre, Définit un numéro de fichier libre
    vNumFichier = Freefile
    ' Ouvre le fichier (en mode lecture)
    
    Open vNomFichier For Input As vNumFichier
    ' Vérifie si la fin du fichier a été atteinte
    While not eof(vNumFichier)
    ' Lit une ligne
    Line Input #vNumFichier, vLigne
    
    vMessage = vMessage & vLigne & Chr(13)
    wend   
    ' Ferme le fichier
    Close #vNumFichier
    Msgbox vMessage
    
    End Sub
    Et miracle, cela fonctionne ! (en tout cas, chez moi; restons prudent )

  10. #10
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 211
    Points : 168
    Points
    168
    Billets dans le blog
    1
    Par défaut
    Ok Michel.

    Cette version a fonctionné. Le fichier AAAA.txt a bien été créé dans mon "home" et a été complété avec le contenu de la carte.

    .
    A+

  11. #11
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Points : 1 493
    Points
    1 493
    Billets dans le blog
    1
    Par défaut
    très heureux pour toi !
    Pour moi, il serait intéressant d'effacer le fichier AAAA.txt après usage et peut-être de réécrire la routine en utilisant les variables d'environnement.
    A+

  12. #12
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Points : 1 493
    Points
    1 493
    Billets dans le blog
    1
    Par défaut Trop rapide ?
    Bonjour
    En testant je me suis rendu compte que le basic essayait de lire avant que le shell n'aie fini. Le résultat est soit un plantage soit la lecture de la version précédente ce qui est une vrai cata
    Donc j'ai rajouté deux tests qui bloque le programme basic tant que le fichier n'est pas créé et rempli
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Fichier= "/home/michel/AAAA.txt" 
     while not FileExists(Fichier)
     wend
     while fileLen(Fichier)<10
     wend
    La routine a été restructurée en 3 parties et devient
    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
    sub carte 'routine principale qui en appelle 3
    Fichier= "/home/michel/AAAA.txt" 
    
     testShell(Fichier)
     'attente jusqu'a ce que le fichier soit rempli
     while not FileExists(Fichier)
     wend
     while fileLen(Fichier)<10
     wend
    
      lecture(Fichier)
      ' on le détruit
       kill(Fichier)
    end sub
    
    Sub testShell(Fichier)
    'Le code ascii du guillemet est 34 asc() et chr() permettent d'atteindre le code ascii d'un caractère 
    cQuote = Chr( 34 )
    
     Shell( "bash -c " + cQuote + "eidenv >"+Fichier+cQuote )
     end sub
     
     sub lecture(Fichier)
    vNomFichier =Fichier ' "/home/michel/AAAA.txt"
    ' Génère un descripteur de fichier libre, Définit un numéro de fichier libre
    vNumFichier = Freefile
    ' Ouvre le fichier (en mode lecture)
    
    Open vNomFichier For Input As vNumFichier
    ' Vérifie si la fin du fichier a été atteinte
    While not eof(vNumFichier)
    ' Lit une ligne
    Line Input #vNumFichier, vLigne
    
    vMessage = vMessage & vLigne & Chr(13)
    wend   
    ' Ferme le fichier
    Close #vNumFichier
    'affiche
    Msgbox vMessage
    
    End Sub

  13. #13
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 211
    Points : 168
    Points
    168
    Billets dans le blog
    1
    Par défaut
    Ouh-là ! Quel chouette boulot

    Il me reste à adapter selon mes besoins spécifiques.


  14. #14
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Points : 1 493
    Points
    1 493
    Billets dans le blog
    1
    Par défaut Supprimer ces horribles boucles d'attente !
    En testant je me suis rendu compte que le basic essayait de lire avant que le shell n'aie fini. Ce que je n'avais pas vu, en revanche c'est que la fonction shell a un paramètre qui bloque l'exécution du basic tant qu'elle n'a pas fini. Par défaut se paramètre est à Fals et on va donc le mettre à true !
    La commande cevient donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Shell( "bash -c " + cQuote + "eidenv >"+Fichier+cQuote,0,"",true  )
    Il faut bien remplir les paramètres précédent avec o pour l'affichage et une chaine vide pour un programme appelé en plus; d'où les virgules et guillemts
    Syntaxe:
    Shell (Pathname As String[, Windowstyle As Integer][, Param As String][, bSync])
    bSync
    Si cette valeur est définie sur True, la commande Shell et toutes les tâches LibreOffice sont suspendues jusqu'à ce que le processus shell soit terminé. Si cette valeur est définie sur False, le processus shell intervient directement. La valeur par défaut est False.
    Voici donc la dernière mouture
    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
    REM  *****  BASIC  *****
    sub carte
    Fichier= "/home/michel/AAAA.txt" 
     testShell(Fichier)
      lecture(Fichier)
      ' on le détruit
       kill(Fichier)
    end sub
    
    Sub testShell(Fichier)
    'Le code ascii du guillemet est 34 asc() et chr() permettent d'atteindre le code ascii d'un caractère 
    cQuote = Chr( 34 )
    
     Shell( "bash -c " + cQuote + "eidenv >"+Fichier+cQuote,0,"",true  )
     end sub
     
     sub lecture(Fichier)
    vNomFichier =Fichier ' "/home/michel/AAAA.txt"
    ' Génère un descripteur de fichier libre, Définit un numéro de fichier libre
    vNumFichier = Freefile
    ' Ouvre le fichier (en mode lecture)
    
    Open vNomFichier For Input As vNumFichier
    ' Vérifie si la fin du fichier a été atteinte
    While not eof(vNumFichier)
    ' Lit une ligne
    Line Input #vNumFichier, vLigne
    
    vMessage = vMessage & vLigne & Chr(13)
    wend   
    ' Ferme le fichier
    Close #vNumFichier
    Msgbox vMessage
    
    End Sub

  15. #15
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 211
    Points : 168
    Points
    168
    Billets dans le blog
    1
    Par défaut C'est beau l'exploration ;-)
    Bonjour Michel,

    Super tes recherches. Cela m'est très utile pour en apprendre un peu plus sur la programmation.

    Merci.
    A+

  16. #16
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Points : 1 493
    Points
    1 493
    Billets dans le blog
    1
    Par défaut et vous ne connaitrez jamais la fin (hitchcock les cinq dernieres minutes)
    Merci mais il reste du boulot.
    Le bacic de LibreOffice ce n'est pas de la tarte!
    Théoriquement, on pourrait utiliser python; ce langage offre beaucoup plus de possibilités mais .....comment ?
    Et ces fameuses applets java fournies par le ministère avec une page html qui n'a jamais rien affiché chez moi.
    Bref beaucoup de patience
    A+

  17. #17
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 211
    Points : 168
    Points
    168
    Billets dans le blog
    1
    Par défaut
    Bonjour Michel,

    Python dans LibreOffice est en effet très compliqué à mettre en oeuvre malgré ce qui est annoncé.
    Je me suis testé avec des tutos proposés sur le Net mais sans vraiment de résultat. Mais bon, je ne suis vraiment pas une bille en programmation non plus

    Encore une fois, merci pour tes efforts qui me sont très utiles et ... probablement à d'autres également.

    A+

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

Discussions similaires

  1. [DOM] Récupérer le contenu d'une balise donnée
    Par mimi31110 dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 27/06/2006, 00h46
  2. Récupérer le contenu d'une frame
    Par eMule-Star dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/06/2006, 14h18
  3. [VB.NET][FlexGrid]Récupérer le contenu d'une cellule de FlexGrid
    Par kinganasius dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/06/2006, 18h11
  4. Récupérer le contenu d'une page PHP
    Par Pragmateek dans le forum Réseau
    Réponses: 37
    Dernier message: 28/05/2006, 23h00
  5. [Servlet]Récupérer le contenu d'une page web
    Par Jarodnet dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 06/10/2005, 16h47

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