Algorithme pour incrementer un Int sous forme de String , commencant par des 00 [Résolu]

blackchocoby 2 Messages postés samedi 12 février 2011Date d'inscription 12 mai 2011 Dernière intervention - 12 mai 2011 à 14:22 - Dernière réponse : blackchocoby 2 Messages postés samedi 12 février 2011Date d'inscription 12 mai 2011 Dernière intervention
- 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 !!!
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
cs_jopop 1540 Messages postés lundi 26 mai 2003Date d'inscription 1 août 2013 Dernière intervention - 12 mai 2011 à 14:58
3
Merci
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

Merci cs_jopop 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_jopop
blackchocoby 2 Messages postés samedi 12 février 2011Date d'inscription 12 mai 2011 Dernière intervention - 12 mai 2011 à 15:51
0
Merci
Merci beaucoup jopop ! C'est exactement ce qu'il me fallait.
Problème résolu Merci encore :)
Commenter la réponse de blackchocoby

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.