Selpos - selection et position !

0/5 (6 avis)

Snippet vu 4 103 fois - Téléchargée 19 fois

Contenu du snippet

Snippet permettant de selectionner une partie facilement du texte dans une editbox de dialog.Vous pouvez selectionner du texte sur une ou plusieur lignes facilement et très rapidement.Il y a même juste une option pour uniquement déplacer le curseur sur la ligne que l'on veut, au Nieme char.
On utilise les objet com et notamment sendkey pour reproduire le clavier.Pas forcément utile, pas forcément inutile...

Source / Exemple :


alias selpos {
  dialog -v $$1 | did -f $$1 $$2
  var %1 $1 ,%2 $2 ,%4 $4 ,%5 $5 ,%{ $({,0) ,%} $(},0) ,%r $iif($regex($3,/l(\d+)-(\d+)/),$regml(1) $regml(2)) ,%r $iif(!%r && $regex($3,/l(\d+)/),$regml(1),%r) ,%ud = $+(%{,up $did($$1,$$2).lines,%},$iif($calc($token(%r,1,32) -1) > 0 || !$5,$+(%{,down $iif(!%r,$calc($iif(!$show,$3,$did($1,$2,1).sel) -1),$calc($token(%r,1,32) -1)),%}))) 
  var %r4 $iif($iif(%r,$4,$3),$+({right $v1,%})) ,%t2 $token(%r,2,32) ,%str $str(a,$calc(1 + %t2 - $token(%r,1,32))) ,%l = $!did(%1,%2,$calc($token(%r,1,32) + ( \n -1 ))).len ,%rse = $regsubex(%str,/(a)/g,$+(+,%{,right $calc( [ %l ] + 1 - $iif(\n == \0,$iif(%5,$calc( [ %l ] - %5 +1),$did(%1,%2,%l).len),$iif(\n == 1,%4))),%}))
  var %> $iif(!$show,{right $4},$iif(%t2,$+(%r4,%rse),$iif(%r,$+(%r4,+,%{,right $iif($5,$5,$calc($did($1,$2,%r).len - $4)),%}),$+(%r4,$iif($show,+),$+({right $iif(%5,$5,$iif($4,$v1,$calc($did($1,$2,$did($1,$2,1).sel).len - $3))),%})))))
  .comopen x WScript.Shell | .comclose x $com(x,sendkeys,3,bstr,$+(%ud,{home},%>))
}

Conclusion :


Syntax : /selpos dialog id [lN-N] N [N2]
dialog : nom du dialog
id : id de l'editbox
Des exemples sont mieux que mon français pourris :
/selpos dialog id 5 3 (selectionnera dans la ligne courante du 6e caractère jusqu'au 8e)
/selpos dialog id l5 2 12 (selectionnera sur la ligne 5, du 3e caractère jusqu'au 15e)
/selpos dialog id 0 (selectionnera tout la ligne courante.)
/selpos dialog id l1-35 19 42 (selectionnera du 19e char sur la premiere ligne jusqu'au 42e char de la 35eme
/selpos dialog id l3-8 (selectionnera de toute la ligne 3 jusqu'a toute la ligne 8
/.selpos dialog id 5 6 (déplacera le curseur sur la 5e lignes, jusqu'au 6e char)

Maintenant ce code commence a être sympa...
J'ai pas recommenté le code parce que c'est très bordelique et délicats.

A voir également

Ajouter un commentaire

Commentaires

cs_wims
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1 -
Je suis pas faché, mais justement, ça faisait longtemps que tu postais plus donc dédié la moitié de ton commentaire a corrigé des fautes sur un snippet, je trouvais ça bof :/
Panthouffle
Messages postés
281
Date d'inscription
jeudi 21 juillet 2005
Statut
Membre
Dernière intervention
14 avril 2008
-
"Le reste du message est vraiment sans interet, je me moque pas mal des fautes, abstient toi de les corrigées stp et ce n'est pas de ma fautes si tu ne sais pas faire de dialog ;)"

C'est bon te fâche pas.. Étant donné que je ne suis pas venu sur ce site depuis plusieurs mois, j'avais pensé te rappeler de bons souvenirs, mais je vois que tu ne prend plus ça à la légère, c'est correcte.
cs_wims
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1 -
Non l'erreur vient de moi, j'ai oublier un "a" qui devrait etre un "x", merci :)

Le reste du message est vraiment sans interet, je me moque pas mal des fautes, abstient toi de les corrigées stp et ce n'est pas de ma fautes si tu ne sais pas faire de dialog ;) :

dialog Ga {
title Ga
size -1 -1 200 200
edit "",1, 10 10 180 180, multi return hsbar vsbar
}

Je vais faire une mise a jour avec une option pour séléctionné plusieurs lignes facilement
Panthouffle
Messages postés
281
Date d'inscription
jeudi 21 juillet 2005
Statut
Membre
Dernière intervention
14 avril 2008
-
Code ingénieux certes mais inutile dans mon cas. T'aurais pu fournir un dialog de test avec ton snippet, j'ai mit 10 minutes à me rappeler comment faire un dialog, et en bout de ligne tous ces efforts m'ont menés vers une bel erreur : * No such Com 'a' open (line 7, script1.mrc), mais j'imagine fortement que le problème vien de moi ^^. Comme Arkanis n'a pas corrigé tes fautes d'orthographe j'en profite pour le faire uhuh (juste les plus visibles ^^)

shouaite > souHaite (oulah xD)
optetionnel > optionnel (mdr)
utilisés > utiliséE
parametre > paramÈtre
Quelque exemple > Quelques exemples

et d'autres cette fois dans ton message de réponse à FearlessKire :

séléctionné > sélectionner

ça décalera sur les ligne suivantes (si elle existe >
ça décalera sur les ligneS suivantes (si elleS existeNT)

C'est pas grave Wims, on t'aime quand même...
Bon, ciao ^^
cs_wims
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1 -
Merci :)
Je vais p-e faire une option pour pouvoir séléctionné plusieurs lignes d'un coup plus facilement mais en attendant, tu peux spécifier des valeurs trop grandes, ça décalera sur les ligne suivantes (si elle existe

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.