Calculatrice de crc simple en dialog

Contenu du snippet

pour l'ouvrir il y a juste a tapper /dopen crccalc
si vous avez pas l'alias dopen la voicie:

alias dopen {
dialog -m $1 $1
}

Source / Exemple :


dialog crccalc {
  title "Crc Calculator"
  size -1 -1 348 83
  option dbu
  box "", 1, 4 4 337 64
  text "Fichier", 2, 10 15 25 8
  edit "", 3, 36 14 258 10
  button "Choisir", 4, 299 13 37 10
  button "Calculer", 5, 4 69 337 12
  text "Crc", 6, 10 30 25 8
  edit "", 7, 36 28 104 10
  text "Taille", 8, 9 43 25 8
  edit "", 9, 36 42 104 10
  button "Comparer", 10, 299 27 37 10
  text "Nom", 11, 143 30 14 8
  text "Créé", 12, 143 43 15 8
  edit "", 13, 159 29 135 10
  edit "", 14, 160 42 134 10
  button "Quiter", 15, 299 40 37 9
  text "Md5", 16, 9 55 25 8
  edit "", 17, 36 54 104 10
  button "Afficher", 18, 299 52 38 10
  text "Accedé", 19, 142 54 19 8
  edit "", 20, 161 54 133 10
  menu "Fichier", 21
  item "Executer", 22, 21
  item "Effacer", 23, 21
  item "Quitter", 24, 21
  menu "Autres", 25
  item "Aide", 26, 25
}
dialog laconfirmationalacon {
  title "Confirmation"
  size -1 -1 95 31
  option dbu
  box "", 1, 2 3 90 26
  button "Anuler", 2, 8 12 37 12
  button "Supprimer", 3, 48 12 37 12
}
on *:dialog:laconfirmationalacon:sclick:*:{
  if ($did == 3) {
    var %tmp $did(crccalc,3)
    if (%tmp == $null) { var %tmp = $$sfile($getdir,Selectioner le fichier a effacer) }
    if ($exists(%tmp) == $true) { 
      remove -b %tmp
      echo -a  $nopath(%tmp) a bien été effacé de votre disque dur 
    }
    else { echo -a %tmp N'esxiste pas: impossible de le suprimer }
  }
  if ($did == 2) { echo -a Le fichier $iif(%tmp != $null, $nopath(%tmp)) n'a pa été effacé }
  dialog -x $dname
}

on *:dialog:crccalc:init:*:{
  var %mdx $findfile($mircdir,mdx.dll,1)
  if (%mdx != $null) {
    dll %mdx SetMircVersion $version
    dll %mdx MarkDialog $dname
    dll %mdx SetDialog $dname style title
  }
  did -b $dname 10
}

on *:dialog:crccalc:menu:*:{
  if ($did == 23) { dialog -m laconfirmationalacon laconfirmationalacon }
  if ($did == 24) { dialog -x $dname }
  if ($did == 22) {
    var %tmp = $did($dname,3)
    if (%tmp != $null) && ($exists(%tmp) == $true) { run %tmp | echo 9 -a Runing %tmp }
    else { run $$sfile($getdir) }
  }
  if ($did == 26) { 
    var %tmp $findfile($mircdir,mirc.hlp,1)
    if ($exists(%tmp) == $true) { run %tmp }
    else { echo -a Mirc.hlp non trouvé dans $mircdir : impossible de lancer l'aide }
  }
}

on *:dialog:crccalc:sclick:*:{
  if ($did == 15) {
    unset %crcfile
    dialog -x $dname
  }
  if ($did == 18) {
    say $iif(c !isin $chan($chan).mode , 09) Info pour $nopath(%crcfile) $+ : Crc: $chr(91) $+ $did($dname,7) $+ $chr(93) $+ , Md5: $did($dname,17)
  }
  if ($did == 5) {
    if (%crcfile != $null) { 
      did -o $dname 7 1 $crc(%crcfile) 
      did -o $dname 9 1 $file(%crcfile).size Octets
      did -o $dname 13 1 $nopath(%crcfile)
      did -o $dname 14 1 $duration($calc($ctime - $file(%crcfile).ctime))
      did -o $dname 20 1 $duration($calc($ctime - $file(%crcfile).atime))
      did -o $dname 17 1 $md5(%crcfile,2)
      did -e $dname 10
    }
    else { echo -a Aucain fichier a identifier }
  }
  if ($did == 4) {
    set %crcfile $sfile($getdir)
    if (%crcfile != $null) { did -o $dname 3 1 %crcfile }
  }
  if ($did == 10) {
    var %comp1 $did($dname,17)
    var %comp2 $md5($sfile($getdir),2)
    if (%comp2 != $null) {
      if (%comp1 == %comp2) { echo -a Les 2 fichiers sonts identiques }
      else { echo -a Les 2 fichiers sonts differents }
    }
  }
}

Conclusion :


voila si vous avez des idées d'amelioration je suis ouvert :)

A voir également

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.