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

C# Discussion :

Appel de programme


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 45
    Points : 34
    Points
    34
    Par défaut Appel de programme
    Bonjour,

    j'ai un programme A et un programme B, que j'ai créé de façon séparée pour l'instant.

    Dans A, je définissais à la main certaines constantes utiles pour faire certains calculs, les résultats sortent dans un fichier excel. bref.

    Maintenant, ces dites constantes sont générées par le programme B, et j'aimerais depuis B pouvoir appeler A, et que B utilise ces nouvelles constantes.

    Faut il que je mette les programmes dans la même "solution" ? dans le même "projet" ?

    J'ai tenté, dans le projet de B, de créer une nouvelle classe, en copiant le code de A, et en le passant en méthode avec les constantes en paramètres, mais il y a interaction avec d'autres fonction (main par exemple) dans la suite du code...

    merci de m'éclairer...

    Cordialement,

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    Pourquoi ne pas créer simplement une libraire partagé entre tes 2 programmes ?

    Une simple DLL que tu pourra référencer par tes 2 programmes, qui contient les classes de tes constantes

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 45
    Points : 34
    Points
    34
    Par défaut
    Euh...je devrais peut être préciser que je suis TRES loin d'être un virtuose du code ...

    Mais mes constantes sont générées par le programme B, je voudrais juste pouvoir faire tourner A en lui donnant les valeurs des constantes générées par B, et récupérer les données que je veux...

    Je suis désolé si cela n'est pas clair

  4. #4
    Membre éclairé Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 612
    Points : 685
    Points
    685
    Par défaut
    Tu peux très bien lancer ton programme a depuis le programme B en passant des paramètres.
    Voici d'ailleurs une fonction qui permet de faire ceci :
    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
     
    public static int Shell(string App, string Args)
        {
          int Id;
          Process proc = new Process();
     
          try
          {
            proc.StartInfo.FileName = App;
            if (Args != "")
            {
              proc.StartInfo.Arguments = Args;
            }
            proc.Start();
            Id = proc.Id;
            proc.Close(); // Attention Close ne met pas fin au processus.
            return Id;
          }
          catch
          {
            return -1;
          }
        }
    Il va de soit que ton programme A doit avoir un paramètre string[] args dans le Main.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    Pour des données légères tu peux utiliser la méthode de ppphil.

    Sinon pour des données complexes / évolutives / lourdes:

    la solution simple c'est d'avoir un fichier "intermédiaire" (que tu peux stocker dans l'environnement utilisateur par exemple), qui sert de support pour la communication des données

    Tu peux avoir une DLL partagé entre A et B qui s'occupe de la sérialisation des données (en XML): sont chargement, sa persistance sur disk...

    Bon après, tu peux depuis A appelé B en lui passant en paramètre le path du fichier avec la méthode de ppphil.


    Sinon si tu veux une solution qui "communique en live" entre tes 2 programmes (en directe quoi), il faut utiliser des techniques d'IPC... plutôt que de récupérer les arguments du process (qui n'est pas très dynamique).

    Tout dépend de ce que tu souhaites réaliser donc

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 45
    Points : 34
    Points
    34
    Par défaut
    Merci à tous pour vos réponses, mais je n'ai malheuresement pas le niveau technique pour faire tout ça.

    J'ai donc modifié un peu mon programme A pour pouvoir le passer en classe/méthodes du programme B.

    Mon lot de constante est devenu un objet, et j'applique une méthode à cet objet.

    Mais je vous remercie bien sur de vous être penchés sur le problème, cela aidera peut etre quelqu'un d'autre...

    Cordialement,

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    On a surtout pas du tout comprendre à ton problème...

    Car vu ce que tu réponds... on est un peu à coté de la plaque // mais bon j'ai pas tout pigé

    Bon courage pour la suite et bonne journée

  8. #8
    Membre éclairé Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 612
    Points : 685
    Points
    685
    Par défaut
    Merci à tous pour vos réponses, mais je n'ai malheuresement pas le niveau technique pour faire tout ça.
    Aller, aller... c'est pas si complexe que ça..
    Pour la solution du fichier regarde l'utilisation des streamReader et StreamWriter.
    Dans B tu écris tes variables dans un fichier. Dans A tu les lis.
    Pour ma solution avec le Shell, ben t'as tout dans la fonction....

    Faut pas se décourager comme ça...

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 45
    Points : 34
    Points
    34
    Par défaut
    Le truc c'est que je les exportait dans un fichier excel seulement quand les deux programme étaient séparés.

    Maintenant, le but était de les mettre en lien, et que j'utilise ces constantes comme "inputs" de mon autre programme, donc plus besoin de générer de fichier excel.

    Je me suis forcément mal exprimé, toutes mes excuses !

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

Discussions similaires

  1. Appel sous programme
    Par sam.fet dans le forum Linux
    Réponses: 2
    Dernier message: 17/08/2006, 12h20
  2. Appel de programme
    Par miron dans le forum C
    Réponses: 14
    Dernier message: 17/05/2006, 23h13
  3. Appeler un programme sur le poste client avec <object>
    Par ouioui2000 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 22/08/2005, 14h40
  4. [Kylix] pb d'appel de programme externe
    Par wizwiz dans le forum EDI
    Réponses: 2
    Dernier message: 27/08/2004, 09h29
  5. [langage] appel de programmes exterieurs
    Par martijan dans le forum Langage
    Réponses: 34
    Dernier message: 07/07/2003, 10h40

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