POURCENTAGE MAJUSCULES MINUSCULES

cs_tofu Messages postés 1726 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 13 juin 2009 - 1 oct. 2006 à 18:58
cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009 - 1 oct. 2006 à 21:36
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/39757-pourcentage-majuscules-minuscules

cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009
1 oct. 2006 à 21:36
oui mais je calcule le $len sur la variable résultante après le $strip et le $remove.
ça me permet justement de ne pas fausser le résultat.

$ClCMajMin(AAAAA) renvoit 100 et 0
$ClCMajMin(AAA BBB) renvoit aussi 100 et 0

rigoureusement parlant, il est clair que ça ne soit pas ' logique ' dans le 2ieme cas que ça renvoit 100 % de Maj , car on lui envoit aussi un espace dans la chaîne .
mais bon , quand je vais lire sur un chan " SALUT CA VA TOI ", je préfère que ça me renvoit la meme chose que s'il yavait " SALUTCAVATOI " . :o)

pour parler de rapidité , les regex sont ' rapides ' , oui et non .
Ils sont a mon avis , un moyen "simple" , efficace et puissant de cibler ce que l'on veut :)

si vous prenez un regex ultra long et meme s'il fait ce qu'on veut , il sera lent :)

merci pour les commentaires :)
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
1 oct. 2006 à 20:58
Oui comme l'a dit Tofu, si tu supprime des caracteres dans la chaine que l'on donne, le résultat est faussé.
Panthouffle Messages postés 281 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 14 avril 2008
1 oct. 2006 à 20:39
tofu j'ai fait quelque tests et après une certaine longueur de texte la boucle devient plus lente (logique) tandisque avec $regex je crois que la longueur importe peu <-- ça c'est d'après mes tests parce que ça me donnait 0millisecondes, ensuite après une certaine longueur ça me donnait 15-16millisecondes avec la boucles et 0millisecondes avec $regex donc bon, m'enfin on parle de quelques millisecondes

SnOOpss, effectivement, je ne crois pas qu'on puisse faire mieux que ça :)
SnOOpss Messages postés 571 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 5 décembre 2013
1 oct. 2006 à 20:27
code de MasterSleepe

/*
Identifieur donnant le pourcentage de majuscules présente dans une phrase
$pourcentmaj(AAA) => 100
$pourcentmaj(AAAa) => 75
$pourcentmaj(-----a) => 0
*/
alias pourcentmaj return $calc($regex($1,/[A-Z]/g) *100/$len($1))
cs_tofu Messages postés 1726 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 13 juin 2009 1
1 oct. 2006 à 20:12
ce qui serait intéressant ça serait de comparer les rapidités d'exécutions de ce genre de codes. parce que les regexp évitent de coder une boucle, mais à voir si le while est plus rapide que le traitement effectué par $regex() ^^
Panthouffle Messages postés 281 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 14 avril 2008
1 oct. 2006 à 19:58
Ton code pourrait surtout servir dans un truc comme un anti-majuscules

J'avais rien à faire cette après-midi et je vien prouver que les regex ne réduise pas toujours "largement" le code, par exemple dans cet exemple-ci. le code que j'ai fait retourne les pourcentages de majuscule, minuscules et les caractères inalphabétiques dans un texte et n'utilise pas les regex

alias text {
var %a 1, %maj, %min, %autre, %l $len($1-)
while %a <= %l {
if $mid($1-,%a,1) isalpha {
if $ifmatch isupper { inc %maj }
else { inc %min }
}
else { inc %autre }
inc %a
}
return $calc(%maj / %l *100) $calc(%min / %l *100) $calc(%autre / %l *100)
}
cs_tofu Messages postés 1726 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 13 juin 2009 1
1 oct. 2006 à 18:58
je suis pas sur que tu obtiennes un résultat exact étant donné que tu supprimes les espaces alors que ce sont bien des caractères faisant partie de la chaîne, de plus si par exemple on met des chr(9) (des tabulations) ou autres caractères spéciaux ils ne seront pas supprimés ($strip() ne supprimant que les caractères ayant attraits à la mise en forme du texte il me semble.)

personnellement j'aurais plutôt opté pour un troisième pourcentage qui serait la part de caractères non alphabétiques dans la chaine.

ceci dit, ça fait tjrs du bien de voir que des gens utilisent les regexp.
Rejoignez-nous