IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Convertion Convert.ToInt32("01") en 01 et non 1


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 180
    Par défaut Convertion Convert.ToInt32("01") en 01 et non 1
    Bonjour,

    Je souhaiterai faire quelque chose d'assez simple.

    Voilà j'ai une chaîne de caractère de ce type : "01-05" qui correspond au valeur 01 à 05 soit "01,02,03,04,05".

    Je souhaiterai convertir "01-05" en "01,02,03,04,05".

    J'ai donc procédé de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     string strValeurDepart = "01-05";
    string strValeurFinale = "";
    if (strValeurDepart.Contains("-"))
        {
            int v_iMin = Convert.ToInt32(strValeurDepart.Substring(0, strValeurDepart.IndexOf("-")));
            int v_iMax = Convert.ToInt32(strValeurDepart.Substring(strValeurDepart.IndexOf("-") + 1));
     
            for (int i = v_iMin; i <= v_iMax; i++)
            {
                if (strValeurFinale == "")
                {
                    strValeurFinale = i.ToString();
                }
                else
                {
                    strValeurFinale += "," + i.ToString();
                }
            }
     
        }
    Le problème est qu'au lieu d'avoir "01,02,03,04,05" j'ai "1,2,3,4,5". Or pour mon application les 0 sont importants.

    Aurait-il quelqu'un pour m'aider.

    Merci d'avance.

  2. #2
    Membre expérimenté
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Billets dans le blog
    4
    Par défaut
    il va peut-être te falloir concaténer ton zero, lorsque que tu convertis en int32 pour ta boucle, tes chiffres sont 1 et 5.
    pour rajouter ton 0 il te faudrait (ce n'est qu'une suggestion)

    faire quelque chose qui ressemble à ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
     
    string strValeurDepart = "01-05";
    string strValeurFinale = "";
    if (strValeurDepart.Contains("-"))
        {
            int v_iMin = Convert.ToInt32(strValeurDepart.Substring(0, strValeurDepart.IndexOf("-")));
            int v_iMax = Convert.ToInt32(strValeurDepart.Substring(strValeurDepart.IndexOf("-") + 1));
     
            for (int i = v_iMin; i <= v_iMax; i++)
            {
                if (strValeurFinale == "")
                {
                    strValeurFinale = "0" + i.ToString();
                }
                else
                {
                    strValeurFinale += ",0" + i.ToString();
                }
            }
     
        }
    Après j'ai peut-être mal compris ou je connais pas forcément la solution la meilleure, mais je pense que ça devrais te donner ce que tu cherches

    Cordialement,
    Lyche
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Mon Tutoriel pour apprendre les Agregations
    Consultez mon Blog SQL destiné aux débutants

    Pensez à FAQ SQL Server Ainsi qu'aux Cours et Tuto SQL Server

  3. #3
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 33
    Par défaut
    Bonjour,

    monNombre.ToString("00") force l'affichage à deux caractères

  4. #4
    Membre expérimenté
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Billets dans le blog
    4
    Par défaut
    Merci de cette petite aide
    donc, oublie ce que j'ai marqué et sers toi de cette astuce de Felloweis

    Cordialement,
    Lyche
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Mon Tutoriel pour apprendre les Agregations
    Consultez mon Blog SQL destiné aux débutants

    Pensez à FAQ SQL Server Ainsi qu'aux Cours et Tuto SQL Server

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 180
    Par défaut
    Merci beaucoup pour votre aide.

    Cependant je souhaiterai savoir comme faire si je suis dans ce cas "08-103".

    Sachant que "01" doit rester "01" et "103" doit être sur 3 caractères.

    Merci d'avance.

  6. #6
    Membre très actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Par défaut
    Citation Envoyé par killysui Voir le message
    Merci beaucoup pour votre aide.
    Cependant je souhaiterai savoir comme faire si je suis dans ce cas "08-103".
    Sachant que "01" doit rester "01" et "103" doit être sur 3 caractères.
    Merci d'avance.
    Dans ce cas, tu insères un petit "if" (en jouant sur le nombre de caractères après le - ) avant de récupérer la valeur v_iMax

+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo