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

Prolog Discussion :

Besoin d'aide pour développer une petite application Prolog/XPCE


Sujet :

Prolog

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Besoin d'aide pour développer une petite application Prolog/XPCE
    J'ai créer une fenetre de dialogue avec deux zones textes, je souhaite lier cette fenetre a un fichier prolog de sorte que si l'utilisateur me saisit les valeurs X et Y, j'ajoute la clause suivante à un fichier prolog qui s'appelle query: q(X):-hasinputtypes(X,Y),hasoutputypes(X,Y). Sachant que hasinputtypes et hasoutputtypes sont des prédicats qui se trouve dans ma base de faits (qui se trouve dans un autre fichiers).
    J'ai écrit le programme suivant:
    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
    :-dynamic q/1.
    ask_query :-
            new(Dialog, dialog('BiOnMap For Resource Discovery')),
            send_list(Dialog, append, 
                      [ new(N1, text_item(resource_input)),
                        new(N2, text_item(resource_output)),
                        button(cancel, message(Dialog, destroy)),
                        button(enter, and(message(@prolog,
                                                  assert_query,
                                                  N1?selection,
                                                  N2?selection),
                                          message(Dialog, destroy)))
                      ]),
            send(Dialog, default_button, enter),
            send(Dialog, open).
     
    assert_query(ResourceInput, ResourceOutput) :-assert((q(X):-hasinputtypes(X,ResourceInput),hasoutputtypes(X,ResourceOutput))),[ResourceInput,ResourceOutput]))),reconsult(semi1),tdb.
    J'obtient l'erreur suivante

    ERROR: '$raw_read'/2: Undefined procedure: assert_query/2

    MErci bcp de votre aide.

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Tu as mal recopie ton code il y a une erreur à la compile.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    assert_query(ResourceInput, ResourceOutput) :-
    	assert((q(X):-
    	       hasinputtypes(X,ResourceInput),
    		hasoutputtypes(X,ResourceOutput))),
    	[ResourceInput,ResourceOutput]))), <== erreur ici 
    	reconsult(semi1),
    	tdb.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Après modif du code :
    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
    ask_query :-
            new(Dialog, dialog('BiOnMap For Resource Discovery')),
            send_list(Dialog, append, 
                      [ new(N1, text_item(resource_input)),
                        new(N2, text_item(resource_output)),
                        button(cancel, message(Dialog, destroy)),
                        button(enter, and(message(@prolog,
                                                  assert_query,
                                                  N1?selection,
                                                  N2?selection),
                                          message(Dialog, destroy)))
                      ]),
            send(Dialog, default_button, enter),
            send(Dialog, open).
     
    assert_query(ResourceInput, ResourceOutput) :-
    	assert((q(X):-
    	       hasinputtypes(X,ResourceInput),
    	       hasoutputtypes(X,ResourceOutput))),
    	[ResourceInput,ResourceOutput],
    	reconsult(semi1),
    	tdb.
    Voilà ce que j'obtiens par un listing :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    %   Foreign: tcp_debug/1
     
    :- dynamic q/1.
     
    q(A) :-
            hasinputtypes(A, toto),
            hasoutputtypes(A, tata).
    true.
    j'ai repondu toto à hasinput et tata à hasoutput.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

Discussions similaires

  1. Besoin d'aide pour créer une application web qui se connecte sur AS/400
    Par wyzer dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 04/06/2010, 15h32
  2. Besoin d'aide pour optimiser une petite query sql
    Par AsmCode dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 21/01/2009, 14h52
  3. [VB6]besoin d'aide pour modifier une application
    Par mister perfect dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 19/05/2006, 11h46

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