Hello Abdel,

Merci pour cette piste. En effet, ça marche bien et c'est satisfaisant, pour autant que je sois capable de voir si ça dégrade les performances ou non. En fait il se trouve que du fait que je "reconvertis" des scripts écrits dans le langage propre à NoteTab, pour me faciliter la tâche j'aidû effectivement écrire quelques bricoles correspondant à certaines fonctions de NoteTab, par exemple getLine, getChar, getSelection, strDeleteLeft... de manière à ce que j'aie le moins de changements possibles dans un premier temps pour faire marcher mes scripts NoteTab réécrits en Python. Quand j'aurai récupéré ma panoplie de scripts NoteTab, je ne sais pas si je garderai ces fonctions-là, encore qu'une getChar par exemple me sert assez souvent pour voir quel caractère se trouve sous le curseur.

Parce que:
sp.window.curPage.text[sp.window.curPage.position]
ça permet du moins de s'entraîner à l'apné. Mais faut c'qu'i faut.

J.-F.


Le 31/01/2017 22:05, Abdel a écrit :
Recoucou JF,

En partant du principe suivant :

Pourquoi faire plus compliqué quand on peut faire plus simple?

Je t'ai trouvé une solution, qui semble bien marcher ici, mais il va
falloir que tu testes à ton niveau, voir si ça te conviendrait ou pas.

Il s'agit, au lieu de stocker la valeur de la ligne dans une variable,
qui au final, ne se souviendra que de la toute première ligne qu'elle
a stockée, de créer plutôt une fonction, avec un no abrégé, puisque
c'est l'objet principal de la demande.

Voici le prototype de la fonction :

import sixpad as sp
edit = sp.window.curPage

def ligne():
    return edit.curLine

Ensuite, ou que tu sois dans le code, tu n'aura plus qu'à exécuter
cette fonction, pour récupérée la ligne la plus récente ayant été
atteinte, comme suit, par exemple, pour avoir le texte de la ligne
courante :

sp.say(edit.line(ligne()), True)

Bien sûr, tu devras créer une fonction pour chaque cas de figure, en
espérant qu'il n'y en ai pas plusieurs, mais ces fonction ne seront
créées qu'une seule fois.


Je sais, la mission principale d'une fonction c'est de réaliser des
actions beaucoup plus élaborées que de retourner un numérode ligne,
mais dans ton cas de figure, ça pourrait être utile.


Voila, maintenant, à toi de voir.

Merci à toi.

Bien amicalement,
Abdel.

Le 31/01/2017 à 12:02, Abdel a écrit :
Coucou JF,

Ah OK.

Dans ce cas, je te conseille de revenir à la réponse donnée par
Quentin, car effectivement, le contexte est assez complexe.

Si on était en C++, on aurait pu facilement le faire, en utilisant
les références, mais en Python, le contexte est différent.

En Python, on peut utiliser ce que l'on appelle les descripteurs, qui
sont en fait des objets qui servent d'attributs dans des classes.

Le descripteur property est d'ailleurs très connu en Python.

Le problème, c'est que bien que cet objet puisse être implémenté
séparément, il faudra le déclarer dans la classe où l'on va souhaiter
l'utiliser, c'est à dire dans la classe Page, en valeur de l'attribut
curLine.

Bref, trop de choses pour éviter un détail qui n'est pas si gênant
que ça, et que les edit.curLine corrigent assez bien.

Tu pourras lire un tuto assez bien fait sur les descripteurs en
Python, à l'adresse suivante :

http://autourducode.com/les-descripteurs.html

Voila, merci à toi.

Bien amicalement,
Abdel.

Le 30/01/2017 à 19:59, Jean-François Colas a écrit :
Hello Abdel,

Oui, bien sûr:

maLigne = sp.window.curPage.curLine

print (maLigne) # devrait t'afficher le numéro de la ligne en
question dans la console, non?

Oui. Et lorsque curLigne change, maLigne ne change pas et c'était ça
mon interrogation. Je vais prendre un moment pour revoir le message
de Matt, bon après, c'est aussi pour que les lignes de code soient
plus courtes et c'est tout...

J.-F.



Le 29/01/2017 22:24, Abdel a écrit :
Salut JF,

En complément de la réponse de notre ami Quentin, si j'ai bien compris
ta question, je pense que tu peux parfaitement déclarer mêmeunobjet
pointant vers un numéro de ligne, pourquoi pas.

import sixpad as sp

maLigne = sp.window.curPage.curLine

print (maLigne) # devrait t'afficher le numéro de la ligne en question
dans la console, non?

Tu peux ainsi déclarer autant d'objets pour les numéros de lignes que
tu voudras.

Mais ce ne sont pas des choses que l'on fait en priorité, on préfère
plutôt déclarer comme tu l'as fait, un objet pointant vers une classe,
comme la classe Page par exemple :

edit = sp.window.curPage


Notre objet edit sera alors ce que l'on appelle une instance de la
classe Page.


Cela simplement pour nous faciliter l'accès aux méthodes et attributs
de la classe Page.

Mais après, tout le monde est libre bien sûr d'abréger ce qu'il veut.


Personnellement, je pense qu'à la longue, le fait  de définir trop de
noms d'objets abrégés même pour le moindre attribut pourrait être une
mauvaise idée, car on risquerait d'être à cours d'idées en matière de
nouveaux noms à donner lol !


Et s'en rappellerait-on systématiquement?


Mais bien sûr, cela reste l'avis de votre ami Abdel, qu'il partage
volontiers avec vous.


Merci à toi.

Bien amicalement,
Abdel.


Le 28/01/2017 à 09:49, QuentinC a écrit :
Salut,

A ma connaissance il n'y a pas de mécanisme de référence en python.
Le plus proche que tu puisses faire si tu es à l'intérieur d'une
classe, c'est une propriété je pense.
Progliste :
Pour se d�sinscrire de la liste :
mailto:[email protected]?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/

Je vous rappelle que les pi�ces jointe sont activ�s leurtaille est
limit� � 2 MO
Pour acc�der aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en
priv�, je vous r�pondrez en priv�.




Progliste :
Pour se d�sinscrire de la liste :
mailto:[email protected]?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/

Je vous rappelle que les pi�ces jointe sont activ�s leur taille est
limit� � 2 MO
Pour acc�der aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en
priv�, je vous r�pondrez en priv�.



Progliste :
Pour se d�sinscrire de la liste :
mailto:[email protected]?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/

Je vous rappelle que les pi�ces jointe sont activ�s leur taille est
limit� � 2 MO
Pour acc�der aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en
priv�, je vous r�pondrez en priv�.




Progliste :
Pour se d�sinscrire de la liste :
mailto:[email protected]?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/

Je vous rappelle que les pi�ces jointe sont activ�s leurtaille est
limit� � 2 MO
Pour acc�der aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en
priv�, je vous r�pondrez en priv�.




Progliste :
Pour se d�sinscrire de la liste :
mailto:[email protected]?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/

Je vous rappelle que les pi�ces jointe sont activ�s leur taille est
limit� � 2 MO
Pour acc�der aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en
priv�, je vous r�pondrez en priv�.



Progliste :
Pour se d�sinscrire de la liste : 
mailto:[email protected]?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/       

Je vous rappelle que les pi�ces jointe sont activ�s leur taille est limit� � 2 MO
Pour acc�der aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en priv�, je 
vous r�pondrez en priv�.
        
        

Répondre à