begin process at 2010 02 10 12:45:32
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

AddOns

 > [CODE MORSE] ENCODE/DECODE SANS $REPLACE

[CODE MORSE] ENCODE/DECODE SANS $REPLACE


 Information sur la source

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :AddOns Niveau :Initié Date de création :26/11/2004 Date de mise à jour :29/11/2004 14:30:29 Vu :6 116

Auteur : skotmarud

Ecrire un message privé
Site perso
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
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

SCANNER IP , PORT , IPLOOKUP
Source avec une capture CLIENT ET SERVEUR PERSO SOCKET (NON TERMINÉS)
Source avec une capture DIALOG DE COULEURS :|
Source avec une capture MINI TELNET
JE PENS QUE $LONGIP EST FAIT DE CETTE MANIERE :

 Sources de la même categorie

BLACKLIST PSEUDOS/MASKS par usurpateur
Source avec une capture [XCHAT] ANTI KICK / AWAY C++ par GeroXXXX
JEU DU CODE par alanpersonproject
SERVEUR FTP par hisoka2501
BANNIR LES AGES, LES HOMMES, LES FEMMES ET PSEUDO AVEC CHIFF... par cougar_du_havre

Commentaires et avis

Commentaire de loadation le 26/11/2004 13:22:22

y fallai y pense lol

Commentaire de PaDa le 26/11/2004 13:32:05

s'interdire $replace c'est du vice, d'autant que c'est pas très dur a émuler le $replace, c'est juste que c'est très chiant a coder...
sinon j'aime bien :))))

Commentaire de SornDrixer le 26/11/2004 17:49:59 administrateur CS

L'idée est original, et c'est bien codé.

Une petite remarque :

while (%i <= $did($dname,5).lines)

Il est déconseillé de faire appel à un identifieur dans la condition d'une boucle, car à chaque boucle, il va devoir aller chercher sa valeur.
Donc stock $did($dname,5).lines dans une var
Dans ce code là, la perte de vitesse est très très minime, mais dans un code plus lourd, c'est à éviter.

Bonne continuation

Commentaire de Asthar le 27/11/2004 20:25:11

Inutile certes, le code morse ayant été abandonné, mais néanmoins joliment codé =)
8/10

Commentaire de skotmarud le 29/11/2004 14:36:39

SornDrixer je savais pas que ça pouvait ralentir le code :/ merci du conseil !

Et merci pour tout vos cmt ;)

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales