| [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ? | |
|
|
Auteur | Message |
---|
Minibug
Nombre de messages : 4566 Age : 57 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ? Dim 29 Avr 2018 - 15:07 | |
| Bonjour à tous ! Si quelqu'un pouvait me rafraîchir la mémoire... Dans l'objet SYNEDIT, y a-t-il un moyen simple de savoir sur quelle ligne est positionné le curseur ? Merci d'avance.
Dernière édition par Minibug le Dim 29 Avr 2018 - 19:06, édité 1 fois | |
|
| |
Yannick
Nombre de messages : 8610 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 29 Avr 2018 - 16:55 | |
| - Jack a écrit:
- Une nouvelle version est sortie (Version instantanée V 0.9.28i7).
Les modifications portent sur l'objet SYNEDIT:
- FIND() et REPLACE() ne sont plus sensibles à la casse
- on peut ajouter/insérer/retirer des lignes, les compter et les lire par programmation avec ITEM_ADD, ITEM_INSERT, ITEM_DELETE, COUNT() et ITEM_READ$() essaye ITEM_SELECT()
Dernière édition par Yannick le Dim 29 Avr 2018 - 16:57, édité 1 fois | |
|
| |
Minibug
Nombre de messages : 4566 Age : 57 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ? Dim 29 Avr 2018 - 16:56 | |
| Merci Yannick mais tu fais comment concrètement ? | |
|
| |
Yannick
Nombre de messages : 8610 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: RE Dim 29 Avr 2018 - 17:01 | |
| Ouff...depuis le temps que je n' ai pas écrit une ligne de code... Essayes de voir si, par hasard, ITEM_SELECT() ne fonctionne pas... ...je m' appuies (appuyais) beaucoup sur la doc (Mémoire à trous) mais depuis le temps qu' elle na pas été mise à jour cela devient de la spéléo dans le forum. | |
|
| |
Minibug
Nombre de messages : 4566 Age : 57 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ? Dim 29 Avr 2018 - 17:08 | |
| J'ai regardé avec les commandes que jack a mis en place mais je ne trouve rien à ce sujet ! Il y a possibilité de connaître la position du curseur mais je trouve rien sur la ligne. A moins que Jack ait prévu autre chose... Jack si tu nous entends... SOS... | |
|
| |
Yannick
Nombre de messages : 8610 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 29 Avr 2018 - 17:12 | |
| En tout cas, ce n' est pas impossible. Le SYNEDIT de KGF a une fonction pour cela. CQFD... | |
|
| |
Minibug
Nombre de messages : 4566 Age : 57 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ? Dim 29 Avr 2018 - 17:21 | |
| Oui ça je le sais bien. Sauf que là je suis sur le SYNEDIT de Panoramic et je ne souhaite pas basculer vers le SYNEDIT de KGF ! J'ai regarder depuis le début de l'après midi dans les recoins du forum mais j'ai rien trouvé à ce sujet. Je pense que Jack n'a pas prévu cela pour l'instant. | |
|
| |
Oscaribout
Nombre de messages : 471 Date d'inscription : 29/12/2016
| Sujet: Re: [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ? Dim 29 Avr 2018 - 17:53 | |
| Si synedit que j'ai jamais utilisé fonctionne comme un memo, tu sauvegardes la sélection dans une variable, et tu mets à la place un marqueur spécifique.
Tu recherches après, ligne par ligne le marqueur, et tu as la ligne. Ensuite tu remets le texte sélectionné. J'interviens car on est dimanche et avec le pont, il doit pas y avoir grand monde qui soit présent. | |
|
| |
Minibug
Nombre de messages : 4566 Age : 57 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ? Dim 29 Avr 2018 - 18:08 | |
| Salut Oscaribout
oui j'y est bien pensé mais quel gymnastique pour un tel résultat !
J’espère que Jack trouvera une solution car c'est quand même bien de savoir ou est le curseur sur une ligne. Et d'ailleurs aussi vrai pour la position horizontale que verticale. Car pour l'instant la seule position que l'on a est le CARET_POSITION qui nous donne uniquement la position du caractère par rapport au document tout entier. Comme s'il s'agissait d'une simple chaîne de caractères.
Je vais quand même tenter l'option du MEMO en attendant mieux mais j'ai un doute sur la rapidité dans un code de plusieurs milliers de lignes... | |
|
| |
Klaus
Nombre de messages : 12276 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ? Dim 29 Avr 2018 - 18:12 | |
| Voici une poissibilité 100 % Panoramic pour connaitre le numéro de ligne d'une position de caractère, comme celle retournée par la commande FIND, par exemple: - Code:
-
dim lig%, col%, pos%, s$
synedit 1 dlist 2 file_load 1,"Nouveau_1.bas"
pos% = FIND("mark_on",1,1)
s$ = text$(1) s$ = left$(s$,pos%) clear 2 file_open_write 1,"temp.tmp" file_writeln 1,s$ file_close 1 file_load 2,"temp.tmp" file_delete "temp.tmp" message "mark_on est en ligne "+str$(count(2))
end Testé avec Nouveau_1.bas: - Code:
-
label chercher dim res%, MAC$ caption 0,"Chercher les adresses MAC" option 1 : top 1,10 : left 1,10 : caption 1,"LocalHost" option 2 : top 2,10 : left 2,110 : caption 2,"Toutes" button 3 : top 3,10 : left 3,210 : caption 3,"Chercher" : on_click 3,chercher memo 4 : top 4,40 : left 4,10 : width 4,300 : height 4,300 : bar_both 4 mark_on 1 dll_on "KGF.dll" end
chercher: MAC$ = string$(17," ") if checked(1)=1 res% = dll_call2("GetMacAddress",adr(MAC$),0) text 4,"MAC = "+MAC$ else res% = dll_call2("GetMacAddress",handle(4),1) end_if end
Ou alors, prendre n'importe quel autre contenu et choisir le critère de recherche... | |
|
| |
Klaus
Nombre de messages : 12276 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ? Dim 29 Avr 2018 - 18:48 | |
| Et voici cette astuce encapsulée dans une fonction autonome: - Code:
-
dim pos% synedit 1 file_load 1,"Nouveau_1.bas" pos% = FIND("mark_on",1,1)
message "mark_on est en ligne "+str$(PositionToRow(pos%))
end
fnc PositionToRow(pos%) dim_local lig%, s$ dlist 2
s$ = text$(1) s$ = left$(s$,pos%) clear 2 file_open_write 1,"temp.tmp" file_writeln 1,s$ file_close 1 file_load 2,"temp.tmp" file_delete "temp.tmp" result count(2) delete 2 end_fnc | |
|
| |
Minibug
Nombre de messages : 4566 Age : 57 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ? Dim 29 Avr 2018 - 19:05 | |
| Merci Klaus ! je viens de mettre ton code en place et ça fonctionne parfaitement. N'empêche qu'une fonction dans Panoramic serai la bienvenue ! | |
|
| |
Klaus
Nombre de messages : 12276 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ? Dim 29 Avr 2018 - 19:12 | |
| Tout à fait d'accord avec toi ! | |
|
| |
silverman
Nombre de messages : 968 Age : 51 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ? Lun 30 Avr 2018 - 0:13 | |
| J'utilise presque le même principe, mais à la place de 'find', j'utilise le 'caret_position' et à la place d'un 'dlist', je place mon texte dans un memo invisible(create_hide), comme ça il n'y a pas besoin de passer par l'enregistrement d'un fichier. | |
|
| |
Minibug
Nombre de messages : 4566 Age : 57 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ? Lun 30 Avr 2018 - 1:22 | |
| Et oui c'est encore plus simple comme ça ! Merci Silverman. | |
|
| |
Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ? Mer 19 Sep 2018 - 17:11 | |
| Je déterre ce sujet pour faire une mise en garde suite à une expérience. - Silverman a écrit:
- J'utilise presque le même principe, mais à la place de 'find', j'utilise le 'caret_position' et à la place d'un 'dlist', je place mon texte dans un memo invisible(create_hide), comme ça il n'y a pas besoin de passer par l'enregistrement d'un fichier.
Cette astuce comporte un piège. Si le WIDTH du mémo est inférieur à une ligne du SYNEDIT le résultat sera augmenté (à chaque fois que se sera le cas) d'une ligne. Pour HEIGHT, je n'ai pas testé mais ça doit être pareil. Comme solution j'ai fait un mémo démesuré width no%,100000 : height no%,100000, je pense que ça devrait suffire. A+ | |
|
| |
silverman
Nombre de messages : 968 Age : 51 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ? Mer 19 Sep 2018 - 20:47 | |
| - Jean-claude a écrit:
- Cette astuce comporte un piège. Si le WIDTH du mémo est inférieur à une ligne du SYNEDIT le résultat sera augmenté (à chaque fois que se sera le cas) d'une ligne.
Un memo scinde les lignes dès que celles-ci atteingnent le bord de droite (wrapping), pour éviter cela, cré ton memo avec bar_honrizontal ou bar_both | |
|
| |
Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ? Mer 19 Sep 2018 - 21:02 | |
| Bonjour et merci Silverman,
Je n'y ai pas pensé, il faut que je teste.
Il reste néanmoins un problème, pour que cela fonctionne (Ta solution ou celle de Klaus), il faut impérativement cliquer sur le texte de la ligne ou pas plus loin que le dernier caractère de cette ligne. Sinon le résultat est faussé. Ce sera la ligne suivante qui sera indiquée si elle n'est pas vide.
A+ | |
|
| |
Contenu sponsorisé
| Sujet: Re: [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ? | |
| |
|
| |
| [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ? | |
|