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

API, COM et SDKs Delphi Discussion :

Un programme dans le programme ?


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut Un programme dans le programme ?
    Bonjour à toutes et à tous,

    Depuis quelque jour je réfléchi sur un problème qui je suis sur vous est déjà venu à l'esprit.

    Est-il possible en Tapans dans un TMemo ce genre de chose

    Sql = "Select * From Table1"
    Parcourir Sql
    Si Table1.Champ1 = 'coucuo' alors ....
    boucler


    J'ai fais expres d'écrire en français.

    Admettons que je tape cela est-il possible dans déduire un travail à faire, comme si je devais interpreter ses lignes comme un programme à faire.

    Comment peut-on arriver à ce genre de chose ?

  2. #2
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    C'est possible, mais je te souhaite bonne chance!

    A toi de créer un langage (avec sa syntaxe, sa sémantique, etc...) puis l'interpréteur (ou le compilateur) qui va avec.

    Autant dire que c'est pas une mince affaire!

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 396
    Points : 640
    Points
    640
    Par défaut
    ce n'est pas si compliqué que cela surtout si tu utilises un langage de script genre RemObjects

  4. #4
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Salut,

    SAT83 :
    Cela ne m'effraie pas, loin de là, pour la syntaxe je l'ai déjà mis en place, maintenant je cherche à interpreter cette syntaxe.


    exoseven :
    J'ai téléchargé cet outil, mais je pense qu'il est trop complet... lol (je vais voir)


    En fait mon besoin ce limiterait juste à 2 ou 3 fonctions principales
    if Then else / Intération (for i / While) / ...

    J'ai déjà fais l'interpretation de requete depuis un Memo, rien de compliqué, mais le reste ...ouch...

    D'autres idées ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Points : 777
    Points
    777
    Par défaut
    Tu as regardé du côté de TMS Scripter Studio ?

  6. #6
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 173
    Points
    4 173
    Par défaut
    Tu veux écrire un interpréteur donc.

    Ce n'est pas très compliqué, mais il faut qu'en même avoir quelques bases en compilation et théorie des langages.

    Logiquement, il faut que tu commences par définir la grammaire de ton langage. Ensuite il existe des outils tels que Lex/Yacc, Bison, COCO/R (mon préféré) qui te permettront de générer automatiquement un analyseur lexical et syntaxique.

    Ces derniers prendrons le texte saisi dans ton mémo (le langage source) et l'analyseront pour produire un graphe d'objets (enfin ce que tu leur diras de faire en fait), en forme d'arbre qui représentera l'ensemble des éléments syntaxiques du programme.

    Ensuite tu as deux possibilités :
    - Tu écris un générateur de code qui prend l'arbre syntaxique et qui génère du code exécutable (dans ce cas tu as un compilateur).
    - Tu utilises le design-pattern de l'Interpreteur pour exécuter le programme (en un mot, tu as une méthode exécute dans chaque objets utilisés pour représenter l'arbre syntaxique). Tu appelles l'Execute de l'objet Racine qui appellera à son tour les Executes des noeuds enfants, en fonction de l'exécution du programme...

  7. #7
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Salut,

    La proposition de franck se rapproche apparament de ce que je recherche.
    Le problème c'est j'ai download les sources mais rien ce compile et je ne peux rien testé. Aurais-tu un lien pour tester comment cela fonctionne.

    GoustiFruit : Le TMS Script je viens de voir qu'il fallait débourser un certain prix (cela ne me dérrange pas) mais je n'ai trouvé aucun exemple ? Aurais-tu un lien avec un exemple concret d'utilisation depuis un TMemo ?

    juste pour continuer dans cette voie.

    Ma recherche n'ai pas temps de pouvoir faire totalement du Delphi et ensuite l'intérpreter. SI vous aviez juste un exemple de comment :
    - transformer un if then else (sachant que je saurais récupérer du Tmemo cet info et la décortiquer.
    - pouvoir executer (sans compiler) comme étant un if/then/else

    Vous allez me dire je suis un malade mental, mais, la où je boss je diffuse une certaine marque de logiciel qui permet via les éditions (je rentre pas dans le détail) de pouvoir taper du code (là il est en français), du code avec des requetes que l'on peux parcourir puis executer tel ou tel action. Je vous montre à quoi cela ressemble :



    Ici si je 'valid' le script s'execute (en fin pour faire simple)
    Est-ce que vos propositions sont capable de faire cela, tout en restant dans le soft dévelloppez (juste avec un TRIcheEdit ou un TMemo dans l'appli ?

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Points : 777
    Points
    777
    Par défaut
    Citation Envoyé par BuzzLeclaire Voir le message
    GoustiFruit : Le TMS Script je viens de voir qu'il fallait débourser un certain prix (cela ne me dérrange pas) mais je n'ai trouvé aucun exemple ? Aurais-tu un lien avec un exemple concret d'utilisation depuis un TMemo ?
    Je n'ai rien à te proposer, c'est juste que ce produite m'est venu à l'esprit en lisant ta description; mais je ne l'ai jamais utilisé !

  9. #9
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 434
    Points : 5 846
    Points
    5 846
    Par défaut
    salut

    tu veut donc mélanger allègrement du Sql avec du pseudo code
    pour moi il manque dans ton code des éléments pour qu'il soit compilable ou "interprétable" correctement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      Elements = execSql("Select * from Element ");
      Pour Chaque ( Element in  Elements) Faire
        Si Element.Famille = "AC" Alors
              Element.Descriptif = "Intervention spécifique";
             Sinon
               Element.Descriptif = "";
        Fin Si 
      Fin Faire
    le probleme etants qu'il est plus lon d'efectuer une boucle qu'une simple requete sql du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      Update Element
       Set Descriptif = ""
     
      Update Element
       Set Descriptif = "Intervention spécifique"
       where Famille = "AC"
    de plus si tu veut de la coloration syntaxique il sera preferable d'utiliser un TRichedit

    @+ Phil

  10. #10
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Je me suis mal exprimé.

    J'utilise bien un TRIchEdit, mes evenement syntaxique fonctionne trés bien.

    L'image que j'ai donnée est un exemple d'un logiciel que je diffuse en temps que revendeur.,cela donnait un exemple de ce que je souhait faire.

    Evidement ma boucle (Un exemple) je peux la remplacer par une simple requete de mise à jour.. , ce n'ai pas ce que je recherche.

    je voudrais pourvoir taper du code et qu'il soit représenter comme un programe.

    j'aurais pu ecrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sql1 = "Select * From aTable1"
    Sql2 = "Select * From aTable2"
     
    Parcourir aTable1 
    if aTable1.Champ = "Avenir" Then
     
      Parcourir aTable2
        if ...
          Faire quelquechose
          etc...
     
      Boucler
     
    Boucler
    Je n'ai pas taper ce code pour avoir une représentation en requete SQL, je cherche à l'interpreter.

Discussions similaires

  1. Plusieurs langages de programmation dans un programme ?
    Par Gamer 1 dans le forum Débuter
    Réponses: 4
    Dernier message: 24/04/2015, 21h21
  2. Réponses: 11
    Dernier message: 16/05/2013, 14h15
  3. Programmer dans un programme java
    Par ratvoleur dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 17/08/2010, 19h58
  4. [Débutant] Réaliser un appel de programme dans un programme matlab
    Par esstin dans le forum MATLAB
    Réponses: 2
    Dernier message: 07/01/2010, 21h27
  5. Accéder au sources du programme dans le programme
    Par belocom dans le forum VB.NET
    Réponses: 2
    Dernier message: 30/01/2007, 19h52

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