|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : décembre 2010 Messages : 30 ![]() |
Bonjour, je rencontre un problème concernant des listes à 2 dimensions:
Je récupère une liste à partir d'une requete SQL: Code :
maTable contient une colonne id et une colonne label, je reçois donc dans prolog une liste de cette forme. à présent, je souhaite ajouter des règles du type: SI colonne label="AZERTY" Alors 1 Sinon 0 et ajouter ce résultat en fin de liste, cad obtenir: [[id1,label1,0],[id1,azerty,1],....... ] Je prend toute idée. d'avance merci, cdt, jfv |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Inscription : septembre 2003 Messages : 4 437 ![]() |
Un simple maplist devrait suffire ,
Code :
__________________
"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 : Intérieur avec jeune femme de Vilhelm Hammershoi |
||
|
|
00
|
|
|
#3 | ||
|
Invité régulier
![]() Inscription : décembre 2010 Messages : 30 ![]() |
bonjour et merci de ta réponse,
je comprend bien la logique, mais à la mise en oeuvre avec: Code :
ou la réponse est , je pense que ça ne doit pas etre loin. merci pour vos suggestions, cdt, jfv.work |
||
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : septembre 2003 Messages : 4 437 ![]() |
Oui, la liste d'appel à modif est de la forme [[...], [..], ..], donc pour un élément c'est test([[aaa,azerty]]).
__________________
"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 : Intérieur avec jeune femme de Vilhelm Hammershoi |
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : décembre 2010 Messages : 30 ![]() |
effectivement, c'est donc que odbc ne me fournit probablement pas une liste à 2 dimensions
|
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : septembre 2003 Messages : 4 437 ![]() |
La question est donc "que te fournit odbc ? " : quel est le résultat de maplist(writeln,List) ?
__________________
"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 : Intérieur avec jeune femme de Vilhelm Hammershoi |
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : décembre 2010 Messages : 30 ![]() |
ça affiche un row(champ1,champ2,.....)
ce sont bien des ( ) et pas des [] |
|
|
00
|
|
|
#8 | |
![]() ![]() Inscription : septembre 2003 Messages : 4 437 ![]() |
Ok. pour récuperer la liste des champs il suffit de faire
Par exemple Citation:
__________________
"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 : Intérieur avec jeune femme de Vilhelm Hammershoi |
|
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() Inscription : décembre 2010 Messages : 30 ![]() |
reprennons, on a :
odbc_connect('MYèODBC_LINK',_,[user(root),password(''),alias(db),open(once)]), findall(L, odbc_query(db,"SELECT * FROM maTable",L),List), maplist(writeln,List), odbc_disconnect(db). qui affiche row(champ1,champ2) on a : row(Champ1,Champ2) =.. [A|B]., qui à partir de row(Champ1,Champ2) nous donne [Champ1,Champ2] on a : maplist(modif, List, L1), writeln(L1). modif([A, azerty], [A, azerty,1]). modif([A, B], [A, B, 0]). . qui va ajouter un champ en fin de ligne tel que si le 2nd champ vaut azerty alors 1 sinon 0 et afficher le résultat. maintenant il faut emboiter tout ça, et je comprend pas comment dans la partie odbc_connect('MYèODBC_LINK',_,[user(root),password(''),alias(db),open(once)]), findall(L, odbc_query(db,"SELECT * FROM maTable",L),List), maplist(writeln,List), odbc_disconnect(db). forcer ce que qualifirai de "conversion" par l'appel de row(Champ1,Champ2) =.. [A|B]. la suite consistant à appeler modif via un maplist est ok |
|
|
00
|
|
|
#10 | ||||
![]() ![]() Inscription : septembre 2003 Messages : 4 437 ![]() |
Première chose
, ça évite les lignes de couleur !Deuxièmement, si j'ai bien compris ton code donne : Code :
Code :
__________________
"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 : Intérieur avec jeune femme de Vilhelm Hammershoi |
||||
|
|
00
|
|
|
#11 |
|
Invité régulier
![]() Inscription : décembre 2010 Messages : 30 ![]() |
super, ça marche très bien,
encore merci |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com