Identifieur qui permet de retourner le nième caractere d'une chaîne depuis la gauche ou la droite

Soyez le premier à donner votre avis sur cette source.

Vue 2 939 fois - Téléchargée 59 fois

Description

Mon code est un identifieur qui permet de retourner le nième caractère d'une chaîne en partant de la droite ou de la gauche selon la propriété choisie.

Il s'appelle $substr (sous-chaîne).
Voici sa syntaxe :
$substr(string,N).propriété
Les deux porpriétés sont les suivantes:
1. r (raccourci de right)=> si on veut que l'identifieur retourne le nième caractère en partant de la droite de la chaîne.
2. l (raccourci de left) => si on veut que l'identifieur retourne le nième caractère en partant de la gauche de la chaîne.

Exemple:
//echo -a $substr(salut,2).l retourne a
//echo -a $substr(salut,2).r retourne u

Merci à Kerrigan et PaDa pour leurs commentaires.

Source / Exemple :


;######################################################################
;Date : 31.05.2004 
;Auteur : -Carton-
;Contact : anneau_nynme@hotmail.com
;Vous pouvez diffuser et utiliser ma source tant que mon nom et la date de création restent clairement visibles et que vous ne la modifiez pas. 
;La modification de cette source est permise seulement en cas d'utilisation personnelle.
;######################################################################

alias substr {
  if $2 {
    if $2 > $len($1) return $1  
    elseif  $prop == r {
      return $left($right($1,$2),1) }
    elseif $prop == l {
      return $right($left($1,$2),1) } }
  else return Erreur de syntaxe }

Conclusion :


J'attends vos commentaires ;) et prenez en considération QUE JE NE CONNAISSAIS PAS $MID (je crie pas, je mets juste en évidence) avant de faire cet identifieur.

@+

-Carton-

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

darkyojimbo2
Messages postés
244
Date d'inscription
mercredi 11 juin 2003
Statut
Membre
Dernière intervention
25 juin 2005
-
Merci, pr ton commentaire Evrae.
Je ne connaissais pas $mis au moment où j'avais posté ce code sinon je ne l'aurai pas fait.
@+
-Carton-
Evrae
Messages postés
58
Date d'inscription
mardi 9 décembre 2003
Statut
Membre
Dernière intervention
16 avril 2005
-
pas mal le remplacement de $mid...quoique je prefere mid ;)
Hades53
Messages postés
231
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
7 juillet 2009
-
"if !$1" devrait être remplacé par "if $1 == $null", if !$1 est confirmé si $1 vaut 0, donc par exemple: $substr(00.000,3).left retournera "Erreur de syntaxe" au lieu du caractère ".".
Attention avec l'utilisation de !.

Et je ne vois pas pourquoi mettre 'if $1 && $2' car si on est à ce stade $1 vaut quelque chose et $2 aussi (cf. première ligne), bon après il y a encore place à l'optimisation, regardez le code ci-dessous.

alias substr {
if ($1 == $null || (!$2) || (!$prop)) return Erreur de syntaxe
if (($2 < 1) || ($2 > $len($1))) return
if ($prop == right) return $left($right($1,$2),1)
if ($prop == left) return $right($left($1,$2),1)
}

Bon, sinon pour ce code on aurait aussi pu procéder ainsi (plus lent par contre):

alias substrb {
if ($prop left) { var %exp $regex($1,^.{ $+ $calc($2 -1) $+ }(.)) | return $regml(1) }
if ($prop right) { var %exp $regex($1,(.).{ $+ $calc($2 -1) $+ }$) | return $regml(1) }
}
cs_PaDa
Messages postés
1804
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
22 septembre 2009
1 -
/me se permet :p
faut mettre le if $2 > $len($1) { return $1 } en début après le test de validité :)
sinon un return aura forcément print/break l'alias avant =) ou alors je pige pas l'utilité de cette ligne :/
mais c'est vrai que l'on gagne en organisation

alias substr {
if !$1 || !$2 || !$prop { return Erreur de syntaxe }
if $2 > $len($1) { return $1 }
if $1 && $2 && $prop = right {
if $2 >= 1 { return $left($right($1,$2),1) } }
elseif $1 && $2 && $prop == left {
if $2 >= 1 { return $right($left($1,$2),1) } }
}
darkyojimbo2
Messages postés
244
Date d'inscription
mercredi 11 juin 2003
Statut
Membre
Dernière intervention
25 juin 2005
-
merci pour ton commentaire Kerrigan et merci aussi à PaDa

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.