none
CHANGEMENT DE FORMAT RRS feed

  • Question

  • Bonjour,

    J'aimerai écrire dans un fichier csv des valeurs sous un certain format de 11 caractères avec 4 décimal quelque soit la valeur, exemple:

     la valeur 74 de la façon suivante : 00000740000

    ou la valeur 74.45 de la façon suivante : 00000744500

    l'écriture dans le fichier csv ne pose pas de soucis, c'est uniquement le changement du format que j'ai essayer avec String.Format.... sans succès.

    Pouvez-vous m'aider ?

    Cdt,


    Boris R.
    mercredi 5 octobre 2011 09:18

Réponses

  • Xavier,

    Je ne peux pas utiliser Console.WriteLine car il faut que je récupère la valeur dans une variables.

    J'ai résolu mon soucis de la façon suivant :

    Value = 74
    WriteValue = Right(String.Format("0000000{0}0000", Value ), 12) 
    WriteValue = Replace(WriteValue , ",", "")
    

    Ce qui me donne 11 caractères car je supprime la , : 00000740000

    J'ai également déclaré WriteValue en string et non en integer ce qui à résolu le soucis des 0 devant

    Merci de ton aide précieuse.

    Cdt,


    Boris R.
    • Proposé comme réponse TroxsaEditor mercredi 5 octobre 2011 11:22
    • Marqué comme réponse TroxsaEditor mercredi 5 octobre 2011 11:22
    mercredi 5 octobre 2011 11:12

Toutes les réponses

  • Bonjour Boris,

    Pouvez vous nous montrer le code que vous avez fait ?
    Vous ouvrez le fichier csv avec Excel ou en Notepad ?

    (Excel aura tendance a tronquer les zéro qui ce trouve au début)

    A bientôt


    Cordialement,
    Xavier TALOUR
    Alias Troxsa SendMail
    Voir le profil de Xavier TALOUR sur LinkedIn
    mercredi 5 octobre 2011 09:52
    Auteur de réponse
  • Voici le Code :

     

    Valeur = 74
    WriteValue = String.Format("{0}0000", Valeur)
    le résultat est : 740000
    quand je met des 0 devant { il ne les affichent pas.
    j'ouvre le fichier avec notepad
     
    Cdt,

    Boris R.
    mercredi 5 octobre 2011 10:00
  • Boris

     

    Quand je fais :

     Console.WriteLine(String.Format("0000{0}0000", 74))
    

    j'ai bien des zéro devant, avez vous la même chose pour avoir des zéro devant ?


    Cordialement,
    Xavier TALOUR
    Alias Troxsa SendMail
    Voir le profil de Xavier TALOUR sur LinkedIn
    mercredi 5 octobre 2011 10:09
    Auteur de réponse
  • Xavier,

    Je ne peux pas utiliser Console.WriteLine car il faut que je récupère la valeur dans une variables.

    J'ai résolu mon soucis de la façon suivant :

    Value = 74
    WriteValue = Right(String.Format("0000000{0}0000", Value ), 12) 
    WriteValue = Replace(WriteValue , ",", "")
    

    Ce qui me donne 11 caractères car je supprime la , : 00000740000

    J'ai également déclaré WriteValue en string et non en integer ce qui à résolu le soucis des 0 devant

    Merci de ton aide précieuse.

    Cdt,


    Boris R.
    • Proposé comme réponse TroxsaEditor mercredi 5 octobre 2011 11:22
    • Marqué comme réponse TroxsaEditor mercredi 5 octobre 2011 11:22
    mercredi 5 octobre 2011 11:12
  • Bonjour,

     

    Essayer avec le code suivant :

     

     

            public static string CustomFormat(double value)
            {
                var formatString = "00000000000";
    
                return (value * 10000).ToString(formatString);
            }
    

     

    La méthode produit la sortie suivante pour 74 : 00000740000

                                                                    74.45 : 00000744500

     

    J'espère avoir bien saisi votre question.

     

    Le code en VB :

    Function CustomFormat(value As Double) As String
            Dim formatString As String = "00000000000"
    
            Return (value * 10000).ToString(formatString)
        End Function


    mercredi 5 octobre 2011 11:16
    Auteur de réponse