Zenity - Case =c3=a0 cocher et r=c3=a9cup=c3=a9ration de variable.
3 réponses
G2PC
Bonjour, voilà une source " simple " dans le pastebin suivant.
Enregistrer le dans un fichier test.sh
Lancer avec sh test.sh
Zenity doit être installé.
https://pastebin.com/jrMnEJxs
J'ai le problème suivant :
Si je coche une seule case, alors, la valeur cochée est affichée
plusieurs fois dans le retour, lorsque j'écris les variables.
Si je coche deux cases, alors, seul les 2 valeurs cochées sont affichées
( comportement correct attendu ).
J'aimerais enfin, dans le meilleur des cas, récupérer les variables,
pour faire un INPUT vers une base de données.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
G2PC
Le 19/03/2018 à 12:02, G2PC a écrit :
Bonjour, voilà une source " simple " dans le pastebin suivant. Enregistrer le dans un fichier test.sh Lancer avec sh test.sh Zenity doit être installé. https://pastebin.com/jrMnEJxs J'ai le problème suivant : Si je coche une seule case, alors, la valeur cochée est affichée plusieurs fois dans le retour, lorsque j'écris les variables. Si je coche deux cases, alors, seul les 2 valeurs cochées sont affichées ( comportement correct attendu ). J'aimerais enfin, dans le meilleur des cas, récupérer les variables, pour faire un INPUT vers une base de données. Merci de vos avis.
Je reviens à un autre fonctionnement que j'avais déjà vu précédemment. Peut être que je dois plutôt faire comme cela : pays=$(zenity --list --checklist --width="360" --height="420" --title="Raison sociale de l'entreprise." --text "Raison sociale de l'entreprise." --separator=":" --column "Sélectionner" --column "Pays" FALSE TP_Allemagne FALSE TP_Autriche FALSE TP_Angleterre FALSE TP_Belgique FALSE TP_Bulgarie FALSE TP_Chypre FALSE TP_Croatie FALSE TP_Danemark FALSE TP_Ecosse FALSE TP_Espagne FALSE TP_Estonie FALSE TP_Finlande FALSE TP_France FALSE TP_Grece FALSE TP_Hongrie FALSE TP_Irlande FALSE TP_Irlande_de_Nord FALSE TP_Italie FALSE TP_Lettonie FALSE TP_Lituanie FALSE TP_Luxembourg FALSE TP_Malte FALSE TP_PaysBas FALSE TP_Pays_de_Galles FALSE TP_Pologne FALSE TP_Portugal FALSE TP_Republique_Tcheque FALSE TP_Roumanie FALSE TP_Slovaquie FALSE TP_Slovenie FALSE TP_Suede FALSE TP_Suisse FALSE TP_OTHER) # On récupère les valeurs cochées dans la liste de choix des pays : echo $pays Ici, plus de redondance dans la liste des valeurs cochées. Si je coche un seul choix, un seul choix est affiché en sortie. Si je coche plusieurs choix, plusieurs choix sont affichés en sortie. ( TP_Allemagne:TP_Ecosse:TP_France ) Maintenant, comment exploiter la chaîne, pour séparer les valeurs obtenues, pour les stocker dans plusieurs variables, pour les exploiter dans une requête SQL ?
Le 19/03/2018 à 12:02, G2PC a écrit :
Bonjour, voilà une source " simple " dans le pastebin suivant.
Enregistrer le dans un fichier test.sh
Lancer avec sh test.sh
Zenity doit être installé.
https://pastebin.com/jrMnEJxs
J'ai le problème suivant :
Si je coche une seule case, alors, la valeur cochée est affichée
plusieurs fois dans le retour, lorsque j'écris les variables.
Si je coche deux cases, alors, seul les 2 valeurs cochées sont affichées
( comportement correct attendu ).
J'aimerais enfin, dans le meilleur des cas, récupérer les variables,
pour faire un INPUT vers une base de données.
Merci de vos avis.
Je reviens à un autre fonctionnement que j'avais déjà vu précédemment.
Peut être que je dois plutôt faire comme cela :
# On récupère les valeurs cochées dans la liste de choix des pays :
echo $pays
Ici, plus de redondance dans la liste des valeurs cochées.
Si je coche un seul choix, un seul choix est affiché en sortie.
Si je coche plusieurs choix, plusieurs choix sont affichés en sortie. (
TP_Allemagne:TP_Ecosse:TP_France )
Maintenant, comment exploiter la chaîne, pour séparer les valeurs
obtenues, pour les stocker dans plusieurs variables, pour les exploiter
dans une requête SQL ?
Bonjour, voilà une source " simple " dans le pastebin suivant. Enregistrer le dans un fichier test.sh Lancer avec sh test.sh Zenity doit être installé. https://pastebin.com/jrMnEJxs J'ai le problème suivant : Si je coche une seule case, alors, la valeur cochée est affichée plusieurs fois dans le retour, lorsque j'écris les variables. Si je coche deux cases, alors, seul les 2 valeurs cochées sont affichées ( comportement correct attendu ). J'aimerais enfin, dans le meilleur des cas, récupérer les variables, pour faire un INPUT vers une base de données. Merci de vos avis.
Je reviens à un autre fonctionnement que j'avais déjà vu précédemment. Peut être que je dois plutôt faire comme cela : pays=$(zenity --list --checklist --width="360" --height="420" --title="Raison sociale de l'entreprise." --text "Raison sociale de l'entreprise." --separator=":" --column "Sélectionner" --column "Pays" FALSE TP_Allemagne FALSE TP_Autriche FALSE TP_Angleterre FALSE TP_Belgique FALSE TP_Bulgarie FALSE TP_Chypre FALSE TP_Croatie FALSE TP_Danemark FALSE TP_Ecosse FALSE TP_Espagne FALSE TP_Estonie FALSE TP_Finlande FALSE TP_France FALSE TP_Grece FALSE TP_Hongrie FALSE TP_Irlande FALSE TP_Irlande_de_Nord FALSE TP_Italie FALSE TP_Lettonie FALSE TP_Lituanie FALSE TP_Luxembourg FALSE TP_Malte FALSE TP_PaysBas FALSE TP_Pays_de_Galles FALSE TP_Pologne FALSE TP_Portugal FALSE TP_Republique_Tcheque FALSE TP_Roumanie FALSE TP_Slovaquie FALSE TP_Slovenie FALSE TP_Suede FALSE TP_Suisse FALSE TP_OTHER) # On récupère les valeurs cochées dans la liste de choix des pays : echo $pays Ici, plus de redondance dans la liste des valeurs cochées. Si je coche un seul choix, un seul choix est affiché en sortie. Si je coche plusieurs choix, plusieurs choix sont affichés en sortie. ( TP_Allemagne:TP_Ecosse:TP_France ) Maintenant, comment exploiter la chaîne, pour séparer les valeurs obtenues, pour les stocker dans plusieurs variables, pour les exploiter dans une requête SQL ?
G2PC
Le 19/03/2018 à 12:52, G2PC a écrit :
Le 19/03/2018 à 12:02, G2PC a écrit :
Bonjour, voilà une source " simple " dans le pastebin suivant. Enregistrer le dans un fichier test.sh Lancer avec sh test.sh Zenity doit être installé. https://pastebin.com/jrMnEJxs J'ai le problème suivant : Si je coche une seule case, alors, la valeur cochée est affichée plusieurs fois dans le retour, lorsque j'écris les variables. Si je coche deux cases, alors, seul les 2 valeurs cochées sont affichées ( comportement correct attendu ). J'aimerais enfin, dans le meilleur des cas, récupérer les variables, pour faire un INPUT vers une base de données. Merci de vos avis.
Je reviens à un autre fonctionnement que j'avais déjà vu précédemment. Peut être que je dois plutôt faire comme cela : pays=$(zenity --list --checklist --width="360" --height="420" --title="Raison sociale de l'entreprise." --text "Raison sociale de l'entreprise." --separator=":" --column "Sélectionner" --column "Pays" FALSE TP_Allemagne FALSE TP_Autriche FALSE TP_Angleterre FALSE TP_Belgique FALSE TP_Bulgarie FALSE TP_Chypre FALSE TP_Croatie FALSE TP_Danemark FALSE TP_Ecosse FALSE TP_Espagne FALSE TP_Estonie FALSE TP_Finlande FALSE TP_France FALSE TP_Grece FALSE TP_Hongrie FALSE TP_Irlande FALSE TP_Irlande_de_Nord FALSE TP_Italie FALSE TP_Lettonie FALSE TP_Lituanie FALSE TP_Luxembourg FALSE TP_Malte FALSE TP_PaysBas FALSE TP_Pays_de_Galles FALSE TP_Pologne FALSE TP_Portugal FALSE TP_Republique_Tcheque FALSE TP_Roumanie FALSE TP_Slovaquie FALSE TP_Slovenie FALSE TP_Suede FALSE TP_Suisse FALSE TP_OTHER) # On récupère les valeurs cochées dans la liste de choix des pays : echo $pays
J'avance pour tenter de récupérer les multiples choix cochés. En sh, j'ai trouvé cela, mais, pas très propre, car, la chaine est réécrite à chaque recherche de valeur, dans le terminal. ( 33 valeurs de pays à tester. ) #sh echo "$pays" | grep TP_Allemagne && echo Allemagne || echo ko echo "$pays" | grep TP_Angleterre && echo Angleterre || echo ko Avec Bash, ça correspond parfaitement à mes attentes. Je peux tester une valeur dans la chaine, je peux faire un echo de la valeur ( ou lancer une commande SQL je suppose. ) #bash OK All="TP_Allemagne" [[ $pays =~ $All ]] && echo Allemagne || echo ko Allemagne Ang="TP_Angleterre" [[ $pays =~ $Ang ]] && echo Angleterre || echo ko Angleterre J'aimerais encore, si possible, avoir l'équivalent, pour shell.
Le 19/03/2018 à 12:52, G2PC a écrit :
Le 19/03/2018 à 12:02, G2PC a écrit :
Bonjour, voilà une source " simple " dans le pastebin suivant.
Enregistrer le dans un fichier test.sh
Lancer avec sh test.sh
Zenity doit être installé.
https://pastebin.com/jrMnEJxs
J'ai le problème suivant :
Si je coche une seule case, alors, la valeur cochée est affichée
plusieurs fois dans le retour, lorsque j'écris les variables.
Si je coche deux cases, alors, seul les 2 valeurs cochées sont affichées
( comportement correct attendu ).
J'aimerais enfin, dans le meilleur des cas, récupérer les variables,
pour faire un INPUT vers une base de données.
Merci de vos avis.
Je reviens à un autre fonctionnement que j'avais déjà vu précédemment.
Peut être que je dois plutôt faire comme cela :
# On récupère les valeurs cochées dans la liste de choix des pays :
echo $pays
J'avance pour tenter de récupérer les multiples choix cochés.
En sh, j'ai trouvé cela, mais, pas très propre, car, la chaine est
réécrite à chaque recherche de valeur, dans le terminal. ( 33 valeurs de
pays à tester. )
#sh
echo "$pays" | grep TP_Allemagne && echo Allemagne || echo ko
echo "$pays" | grep TP_Angleterre && echo Angleterre || echo ko
Avec Bash, ça correspond parfaitement à mes attentes. Je peux tester une
valeur dans la chaine, je peux faire un echo de la valeur ( ou lancer
une commande SQL je suppose. )
#bash OK
All="TP_Allemagne"
[[ $pays =~ $All ]] && echo Allemagne || echo ko Allemagne
Ang="TP_Angleterre"
[[ $pays =~ $Ang ]] && echo Angleterre || echo ko Angleterre
J'aimerais encore, si possible, avoir l'équivalent, pour shell.
Bonjour, voilà une source " simple " dans le pastebin suivant. Enregistrer le dans un fichier test.sh Lancer avec sh test.sh Zenity doit être installé. https://pastebin.com/jrMnEJxs J'ai le problème suivant : Si je coche une seule case, alors, la valeur cochée est affichée plusieurs fois dans le retour, lorsque j'écris les variables. Si je coche deux cases, alors, seul les 2 valeurs cochées sont affichées ( comportement correct attendu ). J'aimerais enfin, dans le meilleur des cas, récupérer les variables, pour faire un INPUT vers une base de données. Merci de vos avis.
Je reviens à un autre fonctionnement que j'avais déjà vu précédemment. Peut être que je dois plutôt faire comme cela : pays=$(zenity --list --checklist --width="360" --height="420" --title="Raison sociale de l'entreprise." --text "Raison sociale de l'entreprise." --separator=":" --column "Sélectionner" --column "Pays" FALSE TP_Allemagne FALSE TP_Autriche FALSE TP_Angleterre FALSE TP_Belgique FALSE TP_Bulgarie FALSE TP_Chypre FALSE TP_Croatie FALSE TP_Danemark FALSE TP_Ecosse FALSE TP_Espagne FALSE TP_Estonie FALSE TP_Finlande FALSE TP_France FALSE TP_Grece FALSE TP_Hongrie FALSE TP_Irlande FALSE TP_Irlande_de_Nord FALSE TP_Italie FALSE TP_Lettonie FALSE TP_Lituanie FALSE TP_Luxembourg FALSE TP_Malte FALSE TP_PaysBas FALSE TP_Pays_de_Galles FALSE TP_Pologne FALSE TP_Portugal FALSE TP_Republique_Tcheque FALSE TP_Roumanie FALSE TP_Slovaquie FALSE TP_Slovenie FALSE TP_Suede FALSE TP_Suisse FALSE TP_OTHER) # On récupère les valeurs cochées dans la liste de choix des pays : echo $pays
J'avance pour tenter de récupérer les multiples choix cochés. En sh, j'ai trouvé cela, mais, pas très propre, car, la chaine est réécrite à chaque recherche de valeur, dans le terminal. ( 33 valeurs de pays à tester. ) #sh echo "$pays" | grep TP_Allemagne && echo Allemagne || echo ko echo "$pays" | grep TP_Angleterre && echo Angleterre || echo ko Avec Bash, ça correspond parfaitement à mes attentes. Je peux tester une valeur dans la chaine, je peux faire un echo de la valeur ( ou lancer une commande SQL je suppose. ) #bash OK All="TP_Allemagne" [[ $pays =~ $All ]] && echo Allemagne || echo ko Allemagne Ang="TP_Angleterre" [[ $pays =~ $Ang ]] && echo Angleterre || echo ko Angleterre J'aimerais encore, si possible, avoir l'équivalent, pour shell.
G2PC
Fin du monologue. # Tester si les valeurs cochées dans la liste de choix des pays se retrouvent dans la chaîne de retour : # sh echo "$pays" | grep TP_Allemagne && echo OK || echo "Pas OK" # sh if echo "$pays" | grep "TP_Allemagne" >/dev/null 2>&1; then echo "OK"; else echo "Pas OK"; fi # bash All="TP_Allemagne" [[ $pays =~ $All ]] && echo OK || echo Pas OK # bash [[ $(grep "TP_Allemagne" <<<$pays) ]] && echo OK
Fin du monologue.
# Tester si les valeurs cochées dans la liste de choix des pays se
retrouvent dans la chaîne de retour :
# sh
echo "$pays" | grep TP_Allemagne && echo OK || echo "Pas OK"
# sh
if echo "$pays" | grep "TP_Allemagne" >/dev/null 2>&1; then echo "OK";
else echo "Pas OK"; fi
# bash
All="TP_Allemagne" [[ $pays =~ $All ]] && echo OK || echo Pas OK
# bash
[[ $(grep "TP_Allemagne" <<<$pays) ]] && echo OK
Fin du monologue. # Tester si les valeurs cochées dans la liste de choix des pays se retrouvent dans la chaîne de retour : # sh echo "$pays" | grep TP_Allemagne && echo OK || echo "Pas OK" # sh if echo "$pays" | grep "TP_Allemagne" >/dev/null 2>&1; then echo "OK"; else echo "Pas OK"; fi # bash All="TP_Allemagne" [[ $pays =~ $All ]] && echo OK || echo Pas OK # bash [[ $(grep "TP_Allemagne" <<<$pays) ]] && echo OK