Commentçamarche.net
CodeS-SourceS
Rechercher un code, un tuto, une réponse

Selpos - selection et position !

0/5 (6 avis)

Snippet vu 3 478 fois - Téléchargée 8 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

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.