Séparateur de milliers pour entiers

Description

On a souvent besoin de séparer les nombres par tranche de 1000!
La fonction IntToStr ne le fait pas mais avec la Fonction Format, on y arrive partiellement...

Après des remue-méninges j'ai revue totalement le Code. Nous mettons un lien vers le Tutorial de Foxi sur la
fonction Format.

merci à Cirec, Korgis et Pseudo3 pour leur participation

La fonction Format est valide de Low(Integer) à high(Integer) mais ne fonctionne pas pour les valeurs extrêmes
des Int64

Source / Exemple :


J'ai donc recréer mon ancienne fonction sans la fonction Format et J'ai réalisé une autre fonction en  tenant 
compte des remarques des uns et des autres.

Deux familles de fonctions sont écrites:

1) IntToSepStr (<=> à  IntToStr) qui met un blanc pour séparation par tranche de 3 chiffres  (Voir capture)

2) StrSepToInt (<=> à StrToInt) pour retrouver le nombre à partir d'une chaine générée par la fonction précédante 
si par ailleurs, on ne possède pas la mémoire de Nombre convertit

Un banc d'essai comparatif a ensuite été créé pour évalué les performances des fonctions. La fonction qui intègre 
Format est plus rapide comme on s'en doutait.

Conclusion :


Permet d'augmenter la lisibilité d'un nombre important

j'ai écarté du test la proposition de korgis qui nous aurait bien plu si elle n'avait pas l'inconvénient de ne
pas pouvoir afficher les extrêmes
des Int64 sans passer en notation scientifique.

Cela n'enlève pas son intérêt si les extrêmes sont écartées des possibilités de valeur, mais il me semble
important de trouver une fonction qui fonctionne dans sa plage de définition en totalité.

A noter également que la Fonction Abs pour int64 n'existe pas en D7. Pour les versions XE, elle est valable.
(notes dans le code)

Les performances de la fonction de Pseudo3 et Korgis pourront encore être améliorée par un code assembleur
optimisé. En effet, la fonction Format est une fonction générale assez complexe, mais avec un peu de temps, on
doit pouvoir en extraire le code qui nous intéressse ici.

Codes Sources

A voir également

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.