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 :

Convertir une string avec espace en Single


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Points : 105
    Points
    105
    Par défaut Convertir une string avec espace en Single
    Bonjour à tous,
    j'Ai une string que j'aimerais convertir en single..voici mon code:
    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
    public Single ConvertToSingle(object valeur)
    {
    	Single montant = 0;
    	//Pour avoir un point et non une virgule
    	try
    	{				
    		montant = Convert.ToSingle(valeur,_ci);
    	}
    	catch(Exception)
    	{
    		montant=0;
    	}
     
    	return montant;
    }
    Cette méthode fonctionne lorsque la valeur entrée n'a pas d'Espace (ex: 232.343) seuelment, lorsque j'ai un nombre du genre "23 3455" alors cela ne marche plus...comment puis-je utiliser ma fonction pour qu'elle marche avec des espace?
    j'ai essayer .trim() mais ça ne marche pas plus

  2. #2
    Membre confirmé
    Profil pro
    Développeur freelance
    Inscrit en
    Août 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur freelance

    Informations forums :
    Inscription : Août 2006
    Messages : 453
    Points : 586
    Points
    586
    Par défaut
    c'est quoi ce "_ci" ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Points : 105
    Points
    105
    Par défaut
    ops désolée:
    ça me permet de choisir ma culture
    je veux que ce soient des point qui apparaîssent, et non des virgules

  4. #4
    Membre actif Avatar de DarkMolo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2006
    Messages : 207
    Points : 277
    Points
    277
    Par défaut
    Salut,
    shirya dit:
    j'ai essayer .trim() mais ça ne marche pas plus
    Oui, " 45 236 ".Trim() donnerait "45 236", le Trim() n'enlève pas les espaces qui se situe au milieu de la chaine, tu peux utiliser Replace(" ",""), ca remplacera les espaces par rien .
    Certified SCJP 5.0 / SCWCD 5.0 / SCEA 5.0
    C'est une grande folie de vouloir être sage tout seul.
    Duc de La Rochefoucauld

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Points : 105
    Points
    105
    Par défaut
    tu peux utiliser Replace(" ",""), ca remplacera les espaces par rien .
    j'ai aussi essayer ça, mais ça ne marche pas non plus...quand je pars le debug et que j'ajoute un espion a la variable, ça me dit:

    'txtChamp.Text.Replace(" ","") erreur*: 'txtChamp.Text.Replace' n'existe pas
    pourtant c'Est bien une string non?

  6. #6
    Membre confirmé
    Profil pro
    Développeur freelance
    Inscrit en
    Août 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur freelance

    Informations forums :
    Inscription : Août 2006
    Messages : 453
    Points : 586
    Points
    586
    Par défaut
    essaie plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    string txt;
    txt = txtChamp.Replace(....);


    Mosco

  7. #7
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 30
    Points : 24
    Points
    24
    Par défaut
    je viens de tester Textbox1.Text.Replace(" ",""); et ça marche bien

  8. #8
    Membre confirmé
    Profil pro
    Développeur freelance
    Inscrit en
    Août 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur freelance

    Informations forums :
    Inscription : Août 2006
    Messages : 453
    Points : 586
    Points
    586
    Par défaut
    oui mais Textbox1 n'est pas un string ...

    et dans l'exemple précédent c'était un string.

    enfin je crois !

  9. #9
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    oui textbox1 n'est pas un string, mais textbox1.Text retourne un string

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Points : 105
    Points
    105
    Par défaut
    bonjour tous, merci de m'Avoir réécris....malheuresuement, j'ai tout essayer ce que vous mA'vez conseiller et ça ne marche toujours pas. quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    txtChamps.Replace(" ","")
    ça me ditque ça ne contient pas cette définition
    et quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    string txt;
    txt = txtChamp.Replace(....);
    ça ne fonctionne tout simplement pas, ça affecte la valeur , mais sans enlever l'espace
    Auriez-vous une idée??

  11. #11
    Membre confirmé
    Profil pro
    Développeur freelance
    Inscrit en
    Août 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur freelance

    Informations forums :
    Inscription : Août 2006
    Messages : 453
    Points : 586
    Points
    586
    Par défaut
    tu peux faire voir ton petit morceau de code de manière à ce que je teste.
    en n'oubliant pas d'indiquer la version de ton IDE ...

    Mosco

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Points : 105
    Points
    105
    Par défaut
    et bien en gros, j'affiche les attributs de mon objet sur une page web.
    Lorsque j'affiche des montants je formatte la string de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    txtChampsText=(monObjet.attribut).ToString("#,##0.00").Replace(",",".");
    ce qui affiche un montant du genre : "1 111.00" si le montant était "1111,0" le replace permet de ne mettre que des point virgule.

    L'utilisateur peut modifier ces attributs. dans ce cas là, je dois enregistrer les modifications.
    j'enregistre dans une propriété de mon objet ce que l'utilisateur a entré:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monObjet.attribut =conv.ConvertToSingle(txtChamps.Text.Replace(" ",""));
    le conv est une classe qui définit la méthode ConvertToSingle
    voici le code de la classe:
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    /// <summary>
    /// Permet de convertir un objet en string ou en Single (avec un point et non une virgule)
    /// </summary>
    public class Conversion
    {
     
    	CultureInfo _ci;
    	public Conversion(String culture)
    	{
    		_ci= new CultureInfo(culture);
    		//"en-US"
    	}
    	public Single ConvertToSingle(object valeur)
    	{
    		Single montant = 0;
     
    		//Pour avoir un point et non une virgule
    		try
    		{				
    			montant = Convert.ToSingle(valeur,_ci);
    		}
    		catch(Exception)
    		{
    			montant=0;
    		}
     
    		return montant;
    	}
     
    }
    et donc, comme il y a un espace dans mon champ text, et bien ça me retourne toujours un 0...
    donc voilà
    ma version est 1.1.4 (c bien dans à propos que l'o nvoit ça?)

  13. #13
    Membre confirmé
    Profil pro
    Développeur freelance
    Inscrit en
    Août 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur freelance

    Informations forums :
    Inscription : Août 2006
    Messages : 453
    Points : 586
    Points
    586
    Par défaut
    je voulais savoir quel version de .NET tu utilises ?

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Points : 105
    Points
    105
    Par défaut
    c'Est 1.1

  15. #15
    Membre confirmé
    Profil pro
    Développeur freelance
    Inscrit en
    Août 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur freelance

    Informations forums :
    Inscription : Août 2006
    Messages : 453
    Points : 586
    Points
    586
    Par défaut
    ton object valeur c'est quoi exactement ?

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Points : 105
    Points
    105
    Par défaut
    et bien c'Est un objet que je passe en paramètre, ça peut -êtr une string un integer ou autre...et je le convertit en single
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monObjet.attribut =conv.ConvertToSingle(txtChamps.Text.Replace(" ",""));
    donc quand je fais ça, il est cenés me convertir une string (sans espace) en single, seulement le raplce ne marche pas et ça m'envoie une string avec un esapce et il n'aie pas ça

  17. #17
    Membre confirmé
    Profil pro
    Développeur freelance
    Inscrit en
    Août 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur freelance

    Informations forums :
    Inscription : Août 2006
    Messages : 453
    Points : 586
    Points
    586
    Par défaut
    donc je viens de faire un essai avec le Replace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
            private void button1_Click(object sender, EventArgs e)
            {
                string toto = "";
                string txt;
     
                txt = maskedTextBox1.Text;
                toto = txt.Replace(" ", "");
     
                label1.Text = toto;
            }
    en gros quand je clique sur le bouton il récupère le text à l'intérieur du TextBox et le Replace me supprime mon espace, et j'affiche le résultat dans mon label.
    j'ai fait un test avec "120 120" dans mon TextBox et j'obtiens "120120" dans mon label.

    Je n'ai pas testé avec ta classe, vu que tu dis que ton problème vient du Replace.

    Essaie de décomposer la ligne de code en mettant le Replace avant ...

    Mosco

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Points : 105
    Points
    105
    Par défaut
    Essaie de décomposer la ligne de code en mettant le Replace avant ...
    le replace avant?
    je comprend pas bien....
    pourquoi est ce que toi ça marche et pas moi?? est ce possible que c'est parce que mon champs text est un maskedTextBox?...mais alors lorsque je le met dans une string, ça devrait marcher..masi ça ne marche pas plus

  19. #19
    Membre confirmé
    Profil pro
    Développeur freelance
    Inscrit en
    Août 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur freelance

    Informations forums :
    Inscription : Août 2006
    Messages : 453
    Points : 586
    Points
    586
    Par défaut
    c'est pour cela que je te dit de décomposer ta ligne de code pour voir d'où vient le problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monObjet.attribut =conv.ConvertToSingle(txtChamps.Text.Replace(" ",""));
    devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    string txt = "";
    txt = txtChamps.Text.Replace(" ","");  // !!!! Attention si txtChamps est un string alors il faut écrire "txtChamps.Replace(...)".
    monObjet.attribut =conv.ConvertToSingle(txt);
    juste pour info ? c'est quoi le txtChamps (string ou autre)

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Points : 105
    Points
    105
    Par défaut
    ok je vais essayer ça...
    juste pour info ? c'est quoi le txtChamps (string ou autre)
    et bien c'Est un maskedTextBox dans ma page txtChamps .text me permet donc d'aller chercher la string qu'il y a dedans

Discussions similaires

  1. Réponses: 9
    Dernier message: 19/04/2013, 16h46
  2. Réponses: 2
    Dernier message: 25/05/2011, 17h07
  3. Convertir une String en Single
    Par kawasaki dans le forum Débuter
    Réponses: 2
    Dernier message: 17/04/2008, 13h54
  4. Convertir une string en image
    Par worldchampion57 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 16/05/2005, 09h55
  5. [Firebird] Convertir une String en date
    Par laffreuxthomas dans le forum SQL
    Réponses: 1
    Dernier message: 04/05/2005, 19h42

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