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

Autres IDE Pascal Discussion :

Utilisation de la procédure Exec [Dev-Pascal]


Sujet :

Autres IDE Pascal

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2016
    Messages : 21
    Points : 18
    Points
    18
    Par défaut Utilisation de la procédure Exec
    Bonjour,
    J'ai un problème en Pascal qui je pense se résout assez facilement mais je ne trouve pas la réponse.
    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Uses
     Crt,Dos,Windows;
    begin
    SwapVectors;
    Exec('C:\Program Files\Microsoft Office\Office12\exemple1.exe','');
    SwapVectors;
    End.
    Je lance mon programme(avec d'autres procédures avant et après ce morceau de code) et une fois que le fichier Excel est ouvert je peux rien faire sur mon programme sans avoir préalablement fermer le fichier Excel. Quelqu'un a une solution ?

    Merci pour vos réponses

  2. #2
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 556
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 556
    Points : 3 926
    Points
    3 926
    Par défaut
    Salut

    Comme le dit la description de la procédure Exec ("https://www.freepascal.org/docs-html/rtl/dos/exec.html"):
    Exec executes the program in Path, with the options given by ComLine. The program name should not appear again in ComLine, it is specified in Path. Comline contains only the parameters that are passed to the program.

    After the program has terminated, the procedure returns. The Exit value of the program can be consulted with the DosExitCode function.

    For an example, see DosExitCode
    Une fois le programme appelé, la procédure redonne le contrôle à l'appelant. Ainsi ton programme attend qu'Excel se termine pour continuer.
    Je ne pense pas qu'il y ait de solution avec Exec, si tu restes dans le monde Dos, en effet ce dernier n'est pas multi-tâches. Est-tu vraiment obligé de travailler avec des API du DOS ?

    Cdlt

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  3. #3
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 729
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 132
    Points
    15 132
    Par défaut
    Salut,

    J't'ai plussé, mais il y a quand même un truc qui n'est pas clair, ou ambigu :
    Citation Envoyé par e-ric Voir le message
    Une fois le programme appelé, la procédure redonne le contrôle à l'appelant. Ainsi ton programme attend qu'Excel se termine pour continuer.
    J'aurais préféré lire (même si c'est lourd) : Une fois que le programme appelé est terminé, parce que sinon on a l'impression que la proc redonne le contrôle à l'appelant (le user ?) dès le programme appelé, ce qui est la demande de l'OP, et qui semble impossible ; par ailleurs la seconde phrase est en opposition avec la première, d'où l'ambiguïté.

    Et la chose est bien précisée dans le lien d'aide que tu as donné :
    Citation Envoyé par aide_web
    Execute another program, and wait for it to finish
    (c'est moi qui ai mis en gras)
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  4. #4
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 556
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 556
    Points : 3 926
    Points
    3 926
    Par défaut
    Citation Envoyé par Jipété Voir le message
    J'aurais préféré lire (même si c'est lourd) : Une fois que le programme appelé est terminé, parce que sinon on a l'impression que la proc redonne le contrôle à l'appelant (le user ?) dès le programme appelé, ce qui est la demande de l'OP, et qui semble impossible ; par ailleurs la seconde phrase est en opposition avec la première, d'où l'ambiguïté.
    Tu as raison, je ne me suis pas assez relu mais tu chipotes un peu sur la fin .

    @+

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2016
    Messages : 21
    Points : 18
    Points
    18
    Par défaut
    Merci pour vos réponses !

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

Discussions similaires

  1. [Système] Utilisation de la fonction exec()
    Par fayza dans le forum Langage
    Réponses: 3
    Dernier message: 22/09/2008, 09h18
  2. Utilisation d'une procedure
    Par Jpa75 dans le forum C
    Réponses: 10
    Dernier message: 17/03/2008, 17h43
  3. utilisation de l'option -exec de find
    Par panach91 dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 17/01/2008, 11h34
  4. utilisation des commandes "." et "exec"
    Par khaliloum dans le forum Linux
    Réponses: 2
    Dernier message: 13/01/2007, 09h08

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