begin process at 2012 02 08 20:08:50
  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 :8 024

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

PACMAN MULTI-JOUEUR EN LIGNE par wims
PROXY&SOCKS SCANNER+LEECHER par independentt
GESTIONNAIRE DE HIGHLIGHT AVANCÉ AVEC IGNORE SALON OU PSEUDO par doob666
AUTOJOIN HTABLE MULTISERVER par doob666
TCL - AJOUT SUPPRESSION DE LOGS par Atok

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

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,593 sec (3)

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