Salut Yannick numéro 2,
En fait, j'ai compris ton PB.
Lorsque tu veux modifier la valeur d'une variable globale dans une
fonction, tu dois tout simplement introduire un global nomDeLaVariable
tout au début de ta fonction, juste après ta ligne de déclaration "def
nomDeTaFonction():"
Cependant, si ton souhait est tout simplement de consulter la valeur de
cette variable globale, sans modifications, tu n'es pas obligé de le
faire.
Je t'ai modifié ton code que tu trouveras en PJ, à toutes fins utiles.
Autre chose les gars, désormais, avec Python 3.4, les chaînes Unicode
sont reconnues directement en tant que str, on est plus obligé de faire
précéder les chaînes Unicode par un u, comme on le faisait avec Python
2.x.
http://stackoverflow.com/questions/6812031/how-to-make-unicode-string-with-python3
C'est que du bénef, que du bénef...
Vivement que NVDA passe à Python 3, ca facilitera vachement le
scripting...
Merci à vous...
Bien amicalement,
Abdel.
----- Original Message ----- From: "Yannick Youalé"
<mailtoloco2...@gmail.com>
To: <progliste@ml.free.fr>
Sent: Monday, January 25, 2016 11:12 AM
Subject: [progliste] Re: 6pad++- quelques préoccupation de sc ripting
Salut !
Début de citation
1.tu enregistre ton fichier au format utf-8
2. en début de code tu ajoutes la directives :
#coding:utf-8
3.tu fais précédé tes strings par la lettre u comme unicode :
Fin de citation
Problème N°2 résolu.
En fait il s'agissait de l'encodage du fichier. Je le faisait en ansci.
et dès que je suis passé à l'UTF8 c'est passé.
Cependant, le problème N° 1 persiste.
Je vous ai mis en pièce jointe le code à problème.
Il s'agit de fonctionnalité d'insertion de point de début et de fin de
sélection, qui créent des raccourcis clavier et s'intègrent au menu
édition.
.
C'est lors de la pose du point de fin de sélection que l'erreur se
produit.
NB: cette fonctionnalité a été intégrée de façon native par Quentin.
C'est plus un exercice de convertion de mes anciens code que je me suis
donné.
Yannick Daniel Youalé
La programmation est une religion. Aimez-la, ou quittez-la.
www.visuweb.net
----- Original Message ----- From: yannick
To: progliste@ml.free.fr
Sent: Monday, January 25, 2016 10:29 AM
Subject: [progliste] Re: 6pad++- quelques préoccupation de sc ripting
salut pour le pb 1 voici un exemple :
class test ():
'iSelectionPointStart' =1
def test (self):
print (self.'iSelectionPointStart' )
pour le ppb 2 :
1.tu enregistre ton fichier au format utf-8
2. en début de code tu ajoutes la directives :
#coding:utf-8
3.tu fais précédé tes strings par la lettre u comme unicode :
text =u"pépé "
Le 25/01/2016 10:10, Yannick Youalé a écrit :
Salut à tous,
M'étant récemment mis au scripting pour le 6pad++, je rencontre
quelques préoccupations que je voudrais vous soumettre.
1. j'ai une variable locale au module qui ne semble pas être reconnue
dans le corps d'une des fonctions.
l'erreur affichée est la suivante:
>>> Traceback (most recent call last):
File "E:\applications\6pad++\lib\yannick\common.py", line 47, in
SelectionPointEnd
UnboundLocalError: local variable 'iSelectionPointStart' referenced
before assignment
Pourtant, la variable iSelectionPointStart est bien déclarée avant les
fonctions et à laquelle la valeur "-1" est attribuée.
Et j'ai bien vérifié plusieurs fois, il n'y a pas d'erreur dans
l'écriture du nom de cette variable.
Qu'est-ce qui cloche ?
2. je rencontre un problème de reconnaissance d'encodage de
caractères.
En effet, lorsque je met des triples guillemets (""") ou des
caractères accentués dans mon code, cela produit l'erreur suivante:
Syntax error. Unicode UTF8 codeck can not decode xxxxxx.
Cela même si j'ajoute des instruction d'en-tête tels que: import sys,
import os, et import string.
Ce qui m'oblige pour le moment à ne pas mettre de caractères accentués
et à ne pas utiliser les triples guillemets.
Où est-ce que je merde ?
Maintenant j'aurais quelques questions et avis sur le logiciel.
1. Dans la documentation j'ai remarqué qu'il y avait une fonction pour
charger des fichiers de langue.
Est-ce que les fichiers de langue se cumulent ou s'écrasent
A mon avis étant donné que le 6pad++ est désormais un logiciel
international, l'utilisation de cette fonction serait un bon moyen de
faire en sorte que des scripts puissent venir avec leurs propres fichiers
de langue pour permettre de traduire leurs textes dans les autres sans
pour autant toucher au code source.
2. Il faut se poser la question de savoir: Si on fait des
script/plugin pour mieux développer en langage python, ce sera pour
quelle version du python ?
Il faudra prendre en compte que les utilisateurs auront sur leur
ordinateur telle ou telle version du python et voudront développer pour
cette version. Ce qui fait que le 6pad++ devra trouver le moyen de
communiquer avec ces versions installées de python (probablement par
ligne de commande) pour effectuer des actions propres à elles.
C'est pourquoi je pense qu'il faut déja une fonction de listage des
pythons installés sur l'ordinateur en cours et une proposition
d'effectuation de choix par les menus.
3. Qu'en est-il de l'idée de créer des profils propres à des langages
particuliers ?
Parce que je peux vouloir que suivant le type de fichier, les
raccourcis soient les mêmes, mais les comportements différents.
4. Est-il possible à l'heure actuelle de créer des interfaces ?
En wx ou autre ?
Ce serait intéressant par script de pouvoir proposer soi-même ses
fenêtre et recueillir les réponses.
Ce qui me fait subitement penser comme alternative à un petit logiciel
de création de formulaire nommé iniform je crois, et qui proposait des
communications par ligne de commande et des réponses dans un fichier ini.
5. J'entrevois l'ajout (par moi ou par d'autres):
* de l'intégration de fonction PyBraces pour insérer et enlever des
accolades du code source affiché. J'avais envoyé ici-même deux fonction
extraites du edsharp. Il faudra les convertir en pythons et ça fera
l'affaire.
* d'un système d'aide pour les mots clé sous le curseur: je l'ai déja
fait pour mon python Editor et ça marche plutôt bien. Faut juste que je
convertisse le code du vb6 au python.
* d'un menu pour compiler le projet si présence du py2exe et si choix
de la bonne version du python installé.
Ca aussi je l'ai déja fait par ailleurs, et il me faut seulement le
convertir.
* d'un menu pour recharger les scripts sans avoir à fermer et
réouvrir 6pad++. Est-ce qu'un tel moyen n'existe pas déja ?
* d'un système d'intellicence, c'est-à-dire la proposition de mots clé
dans une liste déroulante suivant les premières lettres tapées sous le
curseur.
Pour ce faire, (le code de Maan Aloun de son logiciel d'exploration
des modules python peut nous être utile.
Et maintenant, le temps pour faire tout ça. Mon Dieu le temps pour
faire tout ça !!!
Et mon boulot qui me tient toujours par la gorge.
Yannick Daniel Youalé
La programmation est une religion. Aimez-la, ou quittez-la.
www.visuweb.net