begin process at 2008 05 17 08:21:01
1 173 922 membres
53 nouveaux aujourd'hui
13 973 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SELPOS - SELECTION ET POSITION !


Information sur la source

Catégorie :Astuces Classé sous : objet com, selection edibox, dialog, sendkey Niveau : Débutant Date de création : 05/01/2008 Date de mise à jour : 03/02/2008 04:57:49 Vu : 1 373

Note :
Aucune note

Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

Description

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

  • 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},%>))
  • }
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.
05 janvier 2008 02:29:48 :
bug du site, je voulais pas faire de modif, il me force !
05 janvier 2008 03:20:14 :
J'ai rajouté un = pour une des déclaration /var, ils ne sont plus nécéssaire depuis la 6.31 ou 6.3 mais je l'ai rajouté car il provoquera une erreur sur une version ancienne sinon
03 février 2008 04:57:49 :
Ajout de la fonction de selection de plusieurs lignes d'un coup + une fonction pour déplacer uniquement le curseur
  • signaler à un administrateur
    Commentaire de FearlessKire le 06/01/2008 15:48:07

    Pas inutile pour ma part.

    Fonctionnel et innovant, bravo.

  • signaler à un administrateur
    Commentaire de wims le 07/01/2008 18:21:40

    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

  • signaler à un administrateur
    Commentaire de Panthouffle le 20/01/2008 20:00:07

    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 ^^

  • signaler à un administrateur
    Commentaire de wims le 20/01/2008 23:19:39

    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

  • signaler à un administrateur
    Commentaire de Panthouffle le 21/01/2008 03:17:07

    "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.

  • signaler à un administrateur
    Commentaire de wims le 21/01/2008 09:16:43

    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 :/

Ajouter un commentaire

Discussions en rapport avec ce code source

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS