|
Trouver une ressource
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 !
[CODE MORSE] ENCODE/DECODE SANS $REPLACE
Information sur la source
Description
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
- 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 }
- }
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à.
Historique
- 26 novembre 2004 11:58:03 :
- un simpe caractere mal placé.
- 29 novembre 2004 14:30:32 :
- j'ai sup "ê" et j'ai corriger une erreur pour le "é"
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
|