Algorithme pour incrementer un Int sous forme de String , commencant par des 00

Résolu
blackchocoby Messages postés 2 Date d'inscription samedi 12 février 2011 Statut Membre Dernière intervention 12 mai 2011 - 12 mai 2011 à 14:22
blackchocoby Messages postés 2 Date d'inscription samedi 12 février 2011 Statut Membre Dernière intervention 12 mai 2011 - 12 mai 2011 à 15:51
Bonjour à tous !

Alors voila j'ai un petit souci! À ' l aide d'une query SQL j’obtiens un String, représentant un Int commençant par des 0. Exemple 0012109000049
Pour mon programme j'ai besoin d'incrémenter ce "string" pour ensuite l'afficher. Ainsi l'incrémentation de 0012109000049 sera 001210900050!
Les zéros doivent rester présents! J'ai donc pensé mon petit algorithme qui je ne suis sur n'est pas idéal ! Je vais vous le montrez et si quelqu’un à une meilleur idée je suis très preneur!

string res = null;
//Ici requête SQL que je ne vais pas mentionner
res = _currentContext.XXX.ExecuteScalarHelper(query) as string;
// On va incrémenter, le numéro je rappel que res vaut par exemple 0012109000049
int i=0;
long temp = 0;
while (res[0] == '0') { res = res.Substring(1, res.Length - 1); i++; }
//on as enlevé i 0 à res! Et res est maintenant dans un format autorisant le convert
temp = Int64.Parse(res);
temp++;
//Notre valeur est incrémenter il faut maintenant ajouter les 0 correspondant en vérifiant bien que le nombre est exacte

Et donc la j'ajoute mes 0 avec un padding left! Bon mon algo n’est pas top car si jamais le chiffre était 000999999999 ben avec mon algo je vais me retrouver avec un 0 en trop devant ! Pouvez-vous m'aider? Ca serait gentil merci !!!

2 réponses

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
12 mai 2011 à 14:58
Salut,

en C# tu peux utiliser une surcharge de la méthode ToString() pour les int qui prend en paramètre un format (string). Ex. :
int i = 123;
string stri = i.ToString("00000000");
// stri prend la valeur : "00000123"

Tu n'auras donc qu'à incrémenter un int normal et utiliser ToString() pour l'avoir son ce format.

bon code
3
blackchocoby Messages postés 2 Date d'inscription samedi 12 février 2011 Statut Membre Dernière intervention 12 mai 2011
12 mai 2011 à 15:51
Merci beaucoup jopop ! C'est exactement ce qu'il me fallait.
Problème résolu Merci encore :)
0
Rejoignez-nous