Envoyé par
zonoelson
En fait, je ne veux pas ,disons, copier bêtement ce que font les autres, pour dire que je dois comprendre ce que je fais.
C'est bien le but de ce forum.
Donc, la différence entre ma fonction et la tienne, c'est qu'elle gère les cas à 0 en ne mettant les séparateurs que si besoin.
Tu obtiendras donc des résultats comme ça :
- 30 ans, 5 mois et 3 jours
- 30 ans et 28 jours (et pas 30 ans 0 mois et 28 jours)
- 30 ans et 1 mois (et pas 30 ans 1 mois et 0 jour)
- 6 mois et 18 jours (et pas 0 an 6 mois et 18 jours)
- 30 ans (et pas 30 ans 0 mois et 0 jour)
- 8 mois (et pas 0 an 8 mois et 0 jour)
- 23 jours (et pas 0 an 0 mois et 23 jour)
Pour gérer ça, tu as besoin de - Séparer les deux dernières informations par le mot " et "
- S'il y a plus de deux informations, séparer les premières par une ", "
Donc le code maintenant :
On a séparer chaque information par un "$"
nNbSepar = ChaîneOccurrence(sAge, "$")
=> repère le dernier "$" dans la chaîne
nPosSepar = PositionOccurrence(sAge, "$", nNbSepar)
=> repère la position du dernier "$" dans la chaine
sAge = sAge[[A nPosSepar -1]] + " et " + sAge[[1 + nPosSepar A]]
=> remplace le dernier "$" par " et "
sAge = Remplace(sAge, "$", ", ")
[/CODE]
=> remplace tous les "$" restants par ", " (ce principe fonctionne donc, qu'il y ait ou non des "$" restants)
Partager