Gras / Pas Gras

Résolu
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 - 4 janv. 2007 à 11:29
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 - 7 janv. 2007 à 05:12
Je cherche depuis un moment la mthode la plus simple pour ecrire en alternance de gras ou pas.

Seulement je n'y arrive pas.

Quelqu'un pourrait-il m'aider ?

Merci

[PaTaTe]

28 réponses

cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
6 janv. 2007 à 00:55
Le code ne retourne que $1 et est pas du tout optimisé.
Les benchs sur $1 ( a cause du code qui foire j'peux pas testé + ) :

Temps $bub : 140 ms
Temps $b : 2263 ms

alias bench {
  var %a 200 ,%t = $ticks
  while (%a) { var %q = $bub(GaisGaisGaisGaisGaisGaisGaisGaisGaisGaisGa) | dec %a }
  echo -a Temps $!bub : $calc($ticks - %t) ms
}
alias bench1 {
  var %a 200 ,%t = $ticks
  while (%a) { var %q = $b(GaisGaisGaisGaisGaisGaisGaisGaisGaisGaisGa) | dec %a }
  echo -a Temps $!b : $calc($ticks - %t) ms
}

faudra testé avec le code fonctionnel en regex mais ya pas photo :)
0
cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009
6 janv. 2007 à 02:02
Je ne voyais pas le problème car dans mes tests, je faisais un echo %Z à la place de return %Z. Et j'appelais l'alias ainsi: /BUB mon texte et ça fonctionnait sans problème.



Il y a un problème apparement dès qu'on appele l'alias en tant qu'identifieur. Je ne vois pas trop pourquoi d'ailleurs. donc j'ai mis un tokenize au début aussi pour qu'il considère bien tous les mots fournit. bref voila le résultat ;o)

alias b {  var %l 1, %c 1, %text
  while (%l <= $len($1-)) {
    var %m = $mid($1-,%l,1)
    if (%m != $chr(32)) {      if ($calc(%c % 2) 1) { %text $+(%text,$chr(2),%m,$chr(2)) }
      else { %text = %text $+ %m }
      inc %c
    }
    else { %text = %text $+ $chr(160) }
    inc %l
  }
  return %text
}
ALIAS BUB {  VAR %W , %X , %Y , %Z , %R /(.)(.)/g , %S /(.)/g
  TOKENIZE 32 $1-
  WHILE $regex(GtWrd,$1-,/([^[:space:]]+)/i) {
    %W = $regml(GtWrd,1)    IF ($calc($len(%W) % 2) 1) { %X $regsub(%W,%S,$+($chr(2),\1,$chr(2),$chr(2)),%Y) }
    ELSE { %X = $regsub(%W,%R,$+($chr(2),\1,$chr(2),\2),%Y) }
    %Z = %Z $+ $chr(32) $+ %Y | TOKENIZE 32 $2-
  }
  RETURN %Z
}
alias regbench {
  var %a 200 ,%t = $ticks
  while (%a) { var %q = $BUB(GaisGaisGai sGai sGa isGa isGaisGaisGa isGaisGa) | dec %a }
  echo -a Temps $!BUB : $calc($ticks - %t) ms
}
alias regbench1 {
  var %a 200 ,%t = $ticks
  while (%a) { var %q = $b(GaisGaisGai sGai sGa isGa isGaisGaisGa isGaisGa) | dec %a }
  echo -a Temps $!b : $calc($ticks - %t) ms
}



Temps $BUB : 344 ms
Temps $b : 1844 ms

^^



TropNul
0
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 2
6 janv. 2007 à 11:21
Pourquoi le code de TropNul ne me renvois que le premier mot ?

[PaTaTe]
0
cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009
6 janv. 2007 à 11:46
Utilises cet alias (j'y ai rajouté une ligne)

ALIAS BUB {  VAR %W , %X , %Y , %Z , %R /(.)(.)/g , %S /(.)/g
  TOKENIZE 32 $1-
  WHILE $regex(GtWrd,$1-,/([^[:space:]]+)/i) {
    %W = $regml(GtWrd,1)    IF ($calc($len(%W) % 2) 1) { %X $regsub(%W,%S,$+($chr(2),\1,$chr(2),$chr(2)),%Y) }
    ELSE { %X = $regsub(%W,%R,$+($chr(2),\1,$chr(2),\2),%Y) }
    %Z = %Z $+ $chr(32) $+ %Y | TOKENIZE 32 $2-
  }
  RETURN %Z
}

ça fonctionne chez moi en faisant par exemple:

//echo > $BUB(ceci n'est que pour tester)

TropNul
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 2
6 janv. 2007 à 11:56
Dans ce dernier code, les espaces sont pris en compte.

ca donne :

Toto va à la plage

au lieu de :

Toto va à la plage

[PaTaTe]
0
cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009
6 janv. 2007 à 12:14
chez moi ça donne



> Toto va à la plage





ôÔ

TropNul
0
Panthouffle Messages postés 281 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 14 avril 2008
6 janv. 2007 à 17:04
copie le code comme il faut PaTaTe, le code de TropNul fonctionne très bien
0
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 2
7 janv. 2007 à 05:12
Chose etonnante O.o

[PaTaTe]
0
Rejoignez-nous