Fork Bomb Obsédé textuel | Bonjour/Bonsoir,
Le code suivant fonctionne :
Code :
- #!/usr/bin/python3.6
- # encoding: utf-8
- # form_test.py
- from dialog import Dialog
- import re
- d = Dialog(dialog="dialog" )
- # Idée :
- # Tant qu’une des cases de la liste est vide, on recopie
- # les réponses de l’utilisateur et on réaffiche.
- fields=['','','','','','','']
- #fields=[Null,Null,Null,Null,Null,Null,Null]
- #while None in fields:
- # Comment ça marche ?
- # <label>, <numero de ligne>, <numero de colonne>, <reponse utilisateur>, <numero de ligne de la reponse utilisateur>, <numero de colonne de la reponse utilisateur>, <largeur d'affichage du champ>, <maximum de caracteres du champ>
- # Cette ligne fonctionne mais ne capture pas plus d'un espace
- while '' in fields:
- #while Null in fields:
- #while re.compile(r'[ ]+').findall(str(fields)):
- #while re.compile(r"\s+" ) in fields:
- # if re.compile(r'\s+').match(ele):
- #while re.compile(r'\s+').match([ele for ele in fields]):
- #while '' in fields or re.match('\s+', [ele for ele in fields]):
- #while not fields:
- #while not re.match(r"\s+", [ele for ele in fields]):
- #while(re.match('\s+', [ele for ele in fields])):
- return_code, fields = d.form("Texte",
- [("Champ 1", 1, 1, fields[0], 1, 9, 25, 15),
- ("Champ 2", 2, 1, fields[1], 2, 9, 25, 3),
- ("Champ 3", 3, 1, fields[2], 3, 9, 25, 10),
- ("Champ 4", 4, 1, fields[3], 4, 9, 25, 1),
- ("Champ 5", 5, 1, fields[4], 5, 9, 25, 1),
- ("Champ 6", 6, 1, fields[5], 6, 9, 25, 2),
- ("Champ 7", 7, 1, fields[6], 7, 9, 25, 20)],
- height=7, width=0,title="title",backtitle="backtitle",form_height=7)
- if return_code == d.CANCEL:
- print("CANCEL" )
- if return_code == d.OK:
- print("OK" )
|
Ce code effectue un contrôle de saisie 'simple'. Si l’utilisateur ne remplit pas les champs – en appuyant sur [ENTRÉE] par exemple – ça boucle. J’aimerais porter ce contrôle un cran au-dessus. En effet, si mon utilisateur mets un ou des espace(s) dans les champs, ça passe et il n’aura pas répondu aux questions. C’est ce comportement que je cherche à encadrer. J’ai laissé commenté divers essais. J’ai même tenté une Comprehension List, mais j’en ai jamais écrit et évidemment, ça ne marche pas.
Pourriez-vous me dire si je fais fausse route ou si je suis dans la bonne direction ?
Note : Vous aurez besoin de PythonDialog (# pip install pythondialog) pour faire fonctionner ce programme. Message édité par Fork Bomb le 23-02-2018 à 10:30:25 ---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
|