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 :

string sans caractéres spéciaux


Sujet :

Prolog

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut string sans caractéres spéciaux
    je veux construire un programme prolog qui supprime les caracéres spésciaux d'une chaine de caractére comment je peu le realiser SVP

  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
    Quel prolog utilisez-vous ?
    Qu'avez-vous tenté ? Quels sont les problèmes que vous rencontrez ?
    Comment définissez-vous ce que vous appelez les caractères spéciaux ?
    "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
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut un petit programme pour supprimer l'espace balnc j’utilise swi prolog 6.4.1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    netEntr(E,R):-string_length(E,L),
                 (	 sub_string(E,0,_,_,'\s') , L >0,L1 is L-1 ,sub_string(E,1,L1,_,R),writeln(R), netEntr(R,R2));
    	    (	 not(sub_string(E,0,_,_,'\s')),writeln(E),R=E,writeln(R))
    .
    mais le resultat est erroné

  4. #4
    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
    Bonjour

    Vous utilisez un style impératif à éviter en Prolog ! (en l(occurence string_length).
    Utilisez plutôt une approche "fonctionnelle" possible avec maplist.
    Une string peut-être trensformée en liste de caractères à l'aide de string_chars, ensuite travaillez sur la liste puis recréez votre string :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    % verification d'un caractère
    netcar(Bad, In, Out) :-
    	member(In, Bad)
    	-> Out = ' '
    	;  Out = In.
     
    netEntr(In, Bad, Out) :-
    	string_chars(In, CIn),
    	maplist(netcar(Bad), CIn, COut),
    	string_chars(Out, COut).
    Exemple d'utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     ?- netEntr("acde",[a,d], Out).
    Out = " c e".
    On peut améliorer la méthode ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    netcar(Rep, In, Out) :-
    	member(In-R, Rep)
    	-> Out = R
    	;  Out = In.
     
    netEntr(In, Rep, Out) :-
    	string_chars(In, CIn),
    	maplist(netcar(Rep), CIn, COut),
    	string_chars(Out, COut).
    Avec comme résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     ?- netEntr("acde",[a-x,d-y], Out).
    Out = "xcye".
    "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

  5. #5
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    j'ai juste besoin d'un programme qui supprime le blanc au les tabulations d'une chaine de caractére dans l'avant exp s=' write('bounjour') le resultat est R='write('Bonjour').

  6. #6
    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
    Ok, comm d'hab, j'ai lu en diagonale la question.
    On peut utiliser un esprit "fonctionnel" avec foldl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    netcar(Bad, In, Acc, NewAcc) :-
    	member(In, Bad)
    	-> NewAcc = Acc
    	;  append(Acc, [In], NewAcc).
     
    netEntr(In, Rep, Out) :-
    	string_chars(In, CIn),
    	foldl(netcar(Rep), CIn, [], COut),
    	string_chars(Out, COut).
    Avec comme résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     15 ?- netEntr(" write('bonjour')",[' '], Out).
    Out = "write('bonjour')".
    "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

  7. #7
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    merci pour aide

  8. #8
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    j'ai voulu dessiner un graphe avec grapheviz et prolog est ce qu'il possible

  9. #9
    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
    Il existe des possibilités :
    https://github.com/wouterbeek/plGraphViz
    http://www.swi-prolog.org/pack/list?p=callgraph

    Jamais testé mais étant donné les auteurs, ça devrait bien fonctionner.
    "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. String sans caractères
    Par CliffeCSTL dans le forum Langage
    Réponses: 2
    Dernier message: 01/06/2015, 10h56
  2. TextBox sans caractères spéciaux
    Par majduuus dans le forum ASP.NET
    Réponses: 1
    Dernier message: 05/09/2013, 11h43
  3. Réponses: 13
    Dernier message: 09/01/2008, 01h32
  4. Réponses: 2
    Dernier message: 11/01/2007, 11h28
  5. Conversion Caractères Spéciaux String -> Caractères HTML
    Par JujuDorange dans le forum Documents
    Réponses: 1
    Dernier message: 21/10/2006, 12h11

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