Le logiciel "PyQt" permet à Python d'utiliser l'excellente bibliothèque graphique Qt (celle du bureau KDE de Linux!) afin de faire des programmes graphiques beaux et performants. Mais PyQt est passé de la version 4 à la version 5 avec une rupture de compatibilité: il y aura donc une période de transition pendant laquelle il faudra maintenir les programmes PyQt4, les convertir progressivement en PyQt5, et développer les nouveaux programmes en PyQt5.
Le problème, c'est que
Problématique
Le SGBDR sqlite3 qui vient avec Python ne comporte pas d'instruction permettant les recherches avec des expressions régulières. Il y a cependant des cas où on en a vraiment besoin. Comme c'est facile à ajouter, on va le faire!
Solution
On va ajouter 2 fonctions:
- regexp(motif, item) qui va dire si oui on non l'item satisfait le motif
- regextract(motif, item) qui va retourner la 1ère sous-chaine trouvée qui satisfait le motif, ou
Problématique
Dans certains scripts SQL pour sqlite3, on est obligé de calculer plusieurs fois la même valeur. Lorsque cette recherche est complexe, par exemple une sous-requête, cela constitue une perte de temps et de complexité qu'on cherche à éviter.
Un exemple est un script d'extraction avec SELECT, contenant une sous-requête dans un CASE si on doit la mettre en même temps dans le WHEN pour la condition et dans le THEN pour l'affichage:
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part CASE WHEN
Problématique
Quand on veut extraire d'une base SQL des informations texte triées en utilisant 'ORDER BY', on se heurte au problème habituel: l'ordre de tri coïncide avec l'ordre des caractères dans les polices de caractères, c'est à dire, par exemple, que:
- 'a' est situé après 'X' (les minuscules sont situées après les majuscules),
- 'à' est situé après 'x' (les caractères accentués sont situés après les caractères non accentués).
Solution
On a quelque fois le problème suivant: on a une liste de noms saisis au clavier, et qui peut donc comporter des fautes de frappes.
Par exemple: ["Durand", "Meyer", "Dupond", "Dopon", "DUPON", "Nguyen", "Toto"]
Et je cherche si j'ai "Dupont" dans la liste. Par les méthodes habituelles (recherche exacte, wildcard, regex, ...), je ne trouve pas parce que s'il y a une faute de frappe (ou plusieurs?),
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.