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 :

Rechanger le format d'une chaîne


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 13
    Par défaut Rechanger le format d'une chaîne
    Bonjour tout le monde, je fais un petit programme pour calculer des taxes. Je propose également le bouton "Copier" pour copier le contenu d'un TextBox dans le Clipboard. Lorsque ce dernier est copié, un nombre comme
    123 456,00$ va être copié de cette manière 123456,00
    Donc sans espace, ni le signe de $.

    J'ai réussi à me débarasser du '$' mais l'espace ne veut toujours pas partir!
    Sur le même nombre par exemple, j'obtiens ça : 123 456,00
    Et on sait bien qu'Excel n'aime pas les espaces

    Voilà mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
                string cout = txtTotal.Text;
                char[] espaceDollar = new char[] { ' ', '$' };
                string[] parts = cout.Split(espaceDollar,
                         StringSplitOptions.RemoveEmptyEntries);
     
                for (int i = 0; i < parts.Length; i++)
                {
                    Clipboard.SetDataObject(parts[i]);
                }

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Salut,

    Un Replace peut faire l'affaire :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
          string strVal = "123 456,00$";
          strVal= strVal.Replace(" ", string.Empty);
          strVal= strVal.Replace("$", string.Empty);

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 13
    Par défaut
    Salut binoo
    Merci pour ta réponse

    ça enlève pas l'espace malheureusement. Je ne comprends pas.

    Voilà comment je procède pour transtyper decimal -> string
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     private void btnCalculer_Click(object sender, EventArgs e)
            {
    decimal montantTPS = CalculerTPS(numMontantHorsTaxes.Value, numTPS.Value);
                 txtTotal.Text = montantTPS.ToString("C");
    }
    Ensuite je fais comme tu dis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     private void btnCopierTotal_Click(object sender, EventArgs e)
          {
      string cout = txtTotal.Text;
                cout = cout.Replace("$", string.Empty);
                cout = cout.Replace(" ",  string.Empty);
                Clipboard.SetDataObject(cout);
     
            }
    EDIT: En fait, je vais changer ma question. Y aurait-il un moyen de changer le format de chaîne ?
    Comme là je suis en devise donc .ToString("C"), j'aimerais enlever la devise.
    J'ai essayé .ToString() après un TextBox mais ça marche pas.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 167
    Par défaut
    Essaie en utilisant un StringBuilder plutôt que de manipuler des string, ça résoudra peut être ton problème d'espaces qui ne disparaît pas avec string.Replace().
    Sinon tu peux toujours tenter de convertir le contenu de la TextBox en nombre pour le reconvertir en string au bon format d'affichage.

  5. #5
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par Franckintosh Voir le message
    Sinon tu peux toujours tenter de convertir le contenu de la TextBox en nombre pour le reconvertir en string au bon format d'affichage.
    Tout à fait. C'est une idée curieuse de balader des nombres et des formats dans une chaine. La format n'a lieu d'être établi qu'au moment de l'affichage.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 23
    Par défaut
    Bon outre la question de pourquoi tu veux faire comme ca, j'ai testé et en effet ta solution n'elève pas l'espace mais si tu inverse les opérations cad si tu enlève le $ en preier ca marche !!! me demande pas pourquoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    string st = this.numericUpDown2.Value.ToString("C");
    string st2 = st.Remove(st.Length - 1);
    this.textBox2.Text = st2.Replace("*", string.Empty);

Discussions similaires

  1. [XL-2003] Conserver le format d'une chaîne de caractères
    Par Z20500 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/07/2009, 09h42
  2. [RegEx] Besoin d'une expression pour formater une chaîne
    Par Space Cowboy dans le forum Langage
    Réponses: 9
    Dernier message: 17/08/2007, 10h29
  3. Réponses: 5
    Dernier message: 28/07/2007, 20h29
  4. Formater une chaîne de caractéres
    Par kgadhi dans le forum Langage
    Réponses: 9
    Dernier message: 19/06/2006, 12h09
  5. Comment formater une chaîne ?
    Par AsmCode dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 13/01/2006, 14h34

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