salut à vous,
donc il s'agit d'un addon pour "encoder" et "decoder" du language Morse (langage utilisé il y a bien longtemp pour les telegrammes, ancetre de nos telephones mobile..blablabla...)
Source / Exemple :
dialog morse {
title "Le code Morse [Encode/Decode]"
size -1 -1 171 118
option dbu
text "Texte normal :", 1, 2 2 36 8
edit "", 2, 1 10 169 40, disable multi return vsbar
text "Texte Morse :", 3, 2 57 35 8
text "", 4, 3 50 167 8, disable
edit "", 5, 1 65 169 40, disable multi return vsbar
button "ok", 6, 114 107 23 9, default
button "no", 7, 140 107 23 9, cancel
radio "Norm", 11, 80 108 25 8
radio "Morse", 12, 51 108 25 8
text "? By Mrud ?", 8, 5 108 41 8, disable
}
on 1:dialog:morse:*:*:{
if ($devent = init) {
did -a $dname 4 $str($chr(151),33)
}
if ($devent = sclick) {
if ($did = 6) {
if ($did(11).state) && ($did(2).text) { did -r $dname 5
var %i 1 | while (%i <= $did($dname,2).lines) {
if ($did(morse,2,%i).len) { did -ema $dname 5 $sMorse($did($dname,2,%i)) $+ $iif($did(morse,2,$calc(%i +1)).len,$crlf) }
inc %i } }
if ($did(12).state) && ($did(5).text) { did -r $dname 2
var %i 1 | while (%i <= $did($dname,5).lines) {
if ($did(morse,5,%i).len) { did -ema $dname 2 $sMorse($did($dname,5,%i)) $+ $iif($did(morse,5,$calc(%i +1)).len,$crlf) }
inc %i } }
}
if ($did = 11) && ($did(11).state) { did -ne $dname 2 | did -mb $dname 5 }
if ($did = 12) && ($did(12).state) { did -ne $dname 5 | did -mb $dname 2 }
}
}
alias sMorse { $iif($left($1,1) = . || $left($1,1) = -,return $sDmor($1),return $sEmor($1)) }
alias sDmor {
var %dmorse .-,a,-...,b,-.-.,c,-..,d,.,e,..-.,f,--.,g,....,h,..,i,.---,j,-.-,k,.-..,l,--,m,-.,n,---,o,.--.,p,--.-,q,.-.,r,...,s,-,t,..-,u,...-,v,.--,w,-..-,x,-.--,y,--..,z,.----,1,..---,2,...--,3,....-,4,.....,5,-.....,6,--...,7,---..,8,----.,9,-----,0,.-.-.-,.,-..-.,/,.-.-.,+,.----.,',-....-,-,-...-,=,---...,:,-.-.-.,;,.-..-.,",.-.-..,§,...-..-,$,..--.-,_,..--..,?,.--.-,à,-.-..,ç,.-..-,è,..-..,é
var %i 1 | while (%i <= $numtok($1,32)) {
var %o 1 | while (%o <= $calc($numtok(%dmorse,44)/2)) {
if ($gettok($1,%i,32) = $gettok(%dmorse,$calc((%o *2)-1),44)) { var %rez $instok(%rez,$gettok(%dmorse,$calc(%o *2),44),0,0) } | inc %o }
if (%i = $numtok($1,32)) { return %rez } | inc %i }
}
alias sEmor {
var %emorse a,.-,b,-...,c,-.-.,d,-..,e,.,f,..-.,g,--.,h,....,i,..,j,.---,k,-.-,l,.-..,m,--,n,-.,o,---,p,.--.,q,--.-,r,.-.,s,...,t,-,u,..-,v,...-,w,.--,x,-..-,y,-.--,z,--..,1,.----,2,..---,3,...--,4,....-,5,.....,6,-.....,7,--...,8,---..,9,----.,0,-----,.,.-.-.-,/,-..-.,+,.-.-.,',.----.,-,-....-,=,-...-,:,---...,;,-.-.-.,",.-..-.,§,.-.-..,$,...-..-,_,..--.-,?,..--..,à,.--.-,ç,-.-..,è,.-..-,é,..-..
var %i 1 | while (%i <= $len($1)) {
var %o 1 | while (%o <= $calc($numtok(%emorse,44)/2)) {
if ($mid($1,%i,1) = $gettok(%emorse,$calc((%o *2)-1),44)) { var %rez $instok(%rez,$gettok(%emorse,$calc(%o *2),44),0,32)) } | inc %o }
if (%i = $len($1)) { return %rez } | inc %i }
}
Conclusion :
j'ai pas utiliser de $replace donc je pens que c'est interessant.. non ?
niveau : initié, je ne pens pas qu'un debutant en mirc puisse comprendre le code, il fera que le pomper. Donc voilà.
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.