Salut les mecs,
Je travaille sur l'implémentation d'une intellicence pour le 6pad++ et
rencontre un problème avec la gestion des chaînes de caractères par la classe
str.
Ayant récupéré et placé les mots clés à proposer dans un objet de type liste,
je cherche à par tir des premières lettres d'un mot clé tapé sous le curseur à
déterminer quelle expression de la liste est la plus proche.
Mon procédé est d'abord de mettre toutes les valeurs en minuscule avant de
faire les comparaisons.
Mais quand je teste les valeurs après les instructions de mise en minuscule,
pas de changement de la cass. Des expressions sensées être en minuscule
contiennent toujours des majuscules.
Ca me casse la tête depuis ce matin.
Je vous colle la fonction en question ci-dessous:
Début du code python
def getListNierestExpression(lst, expression):
# renvoi la position de l'expression la plus proche contenue dans la liste
ordonnée de manière croissante
if expression=="": return 0
n=len(expression)
# élimination de la cass
e=""
i=0
while(i<n-1):
e=lst[i]
e=e.lower()
lst[i]=e
i=i+1
# end while
sp.window.alert(str(lst))
#
expression=expression.lower()
s=""
pos=0
selec=0
flag=False
# pour chaque lettres de l'expression
for i in range(0, n-1):
s=expression[0: i+1].lower()
for j in range(pos, len(lst)-1):
if lst[j].startswith(s):
flag=True
selec=j
if i>=n-1: return selec
pos=j+1
break
# end if
# end for
# end for
return selec
# end def
Fin du code python
Quelqu'un pourrait-il expliquer le phénomène et avoir une solution ?
Merci!
Yannick Daniel Youalé
La programmation est une religion. Aimez-la, ou quittez-la.
www.visuweb.net