Pourcentage majuscules minuscules

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 710 fois - Téléchargée 22 fois

Contenu du snippet

Calcule et retourne le pourcentage de majuscules et de minuscules d'une chaîne

Source / Exemple :


alias ClCMajMin {
  ; Traitement string et calcul du nombre de caractères total ...
  var %CalMajMin = $remove($strip($1-),$chr(32),$chr(160)) , %LenString = $len(%CalMajMin)
  ; Calcul du pourcentage de MAJ et MIN ...
  var %PrcntMAJ = $calc(($regex(%CalMajMin,/(:upper:)/g)/%LenString)*100) , %PrcntMin = $calc(($regex(%CalMajMin,/(:lower:)/g)/%LenString)*100)
  ; Retour des valeurs ...
  return %PrcntMAJ %PrcntMIN
}

Conclusion :


enjoy :o)

(beaucoup ne pensent pas aux regex, mais comme vous le voyez, dans cette application, ils raccourcissent largement un code)

A voir également

Ajouter un commentaire

Commentaires

Messages postés
340
Date d'inscription
dimanche 18 septembre 2005
Statut
Membre
Dernière intervention
22 octobre 2009

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 :)
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
Oui comme l'a dit Tofu, si tu supprime des caracteres dans la chaine que l'on donne, le résultat est faussé.
Messages postés
281
Date d'inscription
jeudi 21 juillet 2005
Statut
Membre
Dernière intervention
14 avril 2008

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 :)
Messages postés
571
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
5 décembre 2013

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))
Messages postés
1726
Date d'inscription
vendredi 12 septembre 2003
Statut
Membre
Dernière intervention
13 juin 2009
1
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() ^^
Afficher les 7 commentaires

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.