Correcteur

Description

Correcteur d'orthographe en dialog , source a améliorer et en cours d'amélioration .
Merci pour vos commentaires

Source / Exemple :


alias cor1 { dialog -m correction correction }
dialog correction {
  title "Correcteur  /cor1"
  size -1 -1 173 246
  option pixels notheme
  list 1, 8 80 157 144, size
  box "", 2, 2 -4 170 235
  box "", 3, 2 223 170 42
  text "Remplacer", 6, 7 9 55 16
  text "Par", 7, 7 31 21 16
  edit "", 8, 63 5 89 21, autohs
  edit "", 9, 27 27 89 21, autohs
  button "Ajouter", 10, 9 52 78 22
  button "Supprimer", 11, 87 52 78 22
  menu "Fichier"
  item "Fermer",90, 130 378 120 15,ok
}
on *:dialog:correction:*:*:{
  if ($devent == init) {
    dll dlls\mdx.dll SetMircVersion $version
    dll dlls\mdx.dll MarkDialog $dname
    dll dlls\mdx.dll SetControlMDX 1 ListView report single rowselect > views.mdx
    did -i $dname 1 1 headerdims 70 70
    did -i $dname 1 1 headertext Remplacer $chr(9) par
    didcor
  }
  if ($devent == sclick) {
    if ($did = 5) { dialog -m aidecor aidecor }
    if ($did = 10) {  
      if ($did(8) != $null && $did(9) != $null) {
        var %addcor = $did(8)
        var %addcor2 = $did(9)
        if ($exists(correction.txt) != $true) write correction.txt 
        if ($read -w $+ %addcor correction.txt == $null && $read -w $+ %addcor2 correction.txt == $nul) write correction.txt %addcor %addcor2
        didcor
      }
    }
    if ($did = 11) { 
      if !$did(1).sel { var %b $input(Aucune ligne selectionnée,300,Erreur) | halt }
      write -dl $calc($did(1).sel - 1) correction.txt
      didcor
    }
  }
}
alias didcor {
  did -r correction 1
  var %i 1
  while %i <= $lines(correction.txt) { 
    did -a correction 1 0 2 $gettok($read(correction.txt,%i),1,32) $chr(9) $gettok($read(correction.txt,%i),2-,32) 
    inc %i
  }
}
on *:input:*:{ 
  if ($left($1,1) !isin /.! ) {
    if (c isin $chan($active).mode) { say $1- | halt }
    if ($left($1,1) isin ) { say $1- | halt }
    if (%majus == on) { set %out $iif($left($1,1) isnum,$str($chr(160),1),) $upper($left($1,1)) $+ $right($1,$calc($len($1) - 1)) $2- }
    else set %out $iif($left($1,1) isnum,$str($chr(160),1),) $1-
    $corr(%out)
    if (%coul.fond) { 
      if (%gras == on) { set %out  $+ %coul.ecri $+ , $+ %coul.fond %out $+ $str($chr(160),1) }
      else { set %out %coul.ecri $+ , $+ %coul.fond %out $+ $str($chr(160),1) }
    }
    if (!%coul.fond) {
      if (%gras == on) { set %out  $+ %coul.ecri $+ %out }
      else { set %out %coul.ecri $+ %out }
    }
    if (%souligne == on) { set %out  $+ %out $+  }
    say %out 
    halt 
  } 
}

alias corr {
  var %x 1 
  while %x <= $lines(correction.txt) {
    if $gettok($read(correction.txt,%x),1,32) isin $1- {
      set %x1 $gettok($read(correction.txt,%x),1,32))
      set %x2 $gettok($read(correction.txt,%x),2-,32))
      set %out $replace($1-,%x1 ,%x2)
    }
    inc %x
  }
}

Codes Sources

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.