Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Recherche du dernier 0 en partant de gauche

1 réponse
Avatar
Roumeg
Bonjour,
bonne année à tout le monde.

j'ai des ref complétées par des 0 à gauche. Hors l'usage chez mon
client est de supprimer ces zéros dès qu'ils communiquent sur ces
références.

Mais ce n'est pas forcément du numérique

00001906CZ donnera 1906CZ
0001968700 donnera 1968700
021047CZ00 donnera 21047CZ00

et je suis surpris de ne pas trouver la fonction qui va bien.
J'avais espèré avec le SAnsCaractère
mais sansCaractere("021047CZ00") donne 21047CZ
dommage que cette fn ne comporte pas un param DepuisDroite,
DepuisGauche.

je vais obligé de faire une boucle en partant de la gauche pour trouver
mon dernier 0
mais c'est un peu bourrin.

Bon je vais le faire( voir ci dessous) , mais si qq 'un connait
l'instruction magique, ça m'interesse (ps je suis en 16 sur ce coup)


FONCTION TronquePremiersCaractere(pChIn,pCar="0")
chretour est chaîne
i,imax est un entier
imax=Taille(pChIn)
POUR i=1 A imax
SI pChIn[[i]]<>"0" ALORS SORTIR
FIN
chretour=SansEspace(Milieu(pChIn,i))
RENVOYER chretour

--
Eric Roumegou

1 réponse

Avatar
André STASZEWSKI
Bonjour,
bonne année à tout le monde.

j'ai des ref complétées par des 0 à gauche. Hors l'usage chez mon client est
de supprimer ces zéros dès qu'ils communiquent sur ces références.

Mais ce n'est pas forcément du numérique

00001906CZ donnera 1906CZ
0001968700 donnera 1968700
021047CZ00 donnera 21047CZ00

et je suis surpris de ne pas trouver la fonction qui va bien.
J'avais espèré avec le SAnsCaractère
mais sansCaractere("021047CZ00") donne 21047CZ
dommage que cette fn ne comporte pas un param DepuisDroite, DepuisGauche.

je vais obligé de faire une boucle en partant de la gauche pour trouver mon
dernier 0
mais c'est un peu bourrin.

Bon je vais le faire( voir ci dessous) , mais si qq 'un connait l'instruction
magique, ça m'interesse (ps je suis en 16 sur ce coup)


FONCTION TronquePremiersCaractere(pChIn,pCar="0")
chretour est chaîne
i,imax est un entier
imax=Taille(pChIn)
POUR i=1 A imax
SI pChIn[[i]]<>"0" ALORS SORTIR
FIN
chretour=SansEspace(Milieu(pChIn,i))
RENVOYER chretour



Bonjour,

Je n'ai pas d'instruction magique mais je peux te le faire en deux
lignes et sans boucle à une condition : c'est que tu connaisses le
nombre maximal de zéro qui sont succeptibles de se trouver au début de
la chaine à traiter.

si c'est le cas alors cette instruction fera l'affaire :

//sChaineAtraiter contient la chaine à traiter avec ou sans espaces
//sRésultat contient le résultat de l'opération.
sChaineAtraiter, sRésultat sont des chaînes

sRésultat =
Milieu(sChaineAtraiter,ChaîneCommencePar(sChaineAtraiter,["0","00","000","0000"],ccSansEspace)+1)

Si tu connais le nbr de zéro succeptible d'être présent, il te suffit
de compléter le tableau comme dans cet exemple où le traitement opére
entre 1 et 4 zéros possibles sur la chaine à traiter

--
Cordialement,
André STASZEWSKI
http://www.SoftSolution.fr
Pour me contacter, cliquez ici :
http://cerbermail.com/?Z8IP9sIahR