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

Windows Forms Discussion :

convertir un tableau de type string en type double


Sujet :

Windows Forms

  1. #1
    Membre du Club Avatar de saraenim
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 83
    Points : 59
    Points
    59
    Par défaut convertir un tableau de type string en type double
    bonjour ,
    je voudrais bien savoir si c possible de convertir un tableau de type string en un autre de type double
    j'ai essayé avec la fonction convertall mais ça pas voulu marché il y'a une erreur quelque part et je sais pas comment la corriger SVP aide moi
    voila l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim nombre As Intege
     Dim t(nombre) As String
       Dim ta(nombre) As double
    ta =  t.ConvertAll(Of String, Double)(t(nombre) as string ,converter As System.Converter(Of String, double )) as double()
    never give up

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 171
    Points : 25 105
    Points
    25 105
    Par défaut
    si tu est sur le framework 3.5 tu fais .cast sur ton tableau ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre du Club Avatar de saraenim
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 83
    Points : 59
    Points
    59
    Par défaut
    salut,
    non je travaille sous VS 2005 ( framework 2)
    never give up

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 100
    Points
    100
    Par défaut
    Salut je connais pas VB.Net mais C# mais les syntaxes sont quasi similaires.

    voila ce que cela donnerait en c#, après tu peux adapter en VB :

    tu crée une méthode qui fera la conversion.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    private double[] ConvertTableauStringToDouble(string[] tableauString)
            {
                int taille = tableauString.Length;
                double[] tableauDouble = new double[taille];
                int compteur = 0;
                foreach (string element in tableauString)
                {
                    tableauDouble[compteur] = Convert.ToDouble(element);
                    compteur++;
                }
                return tableauDouble;
            }
    Et ensuite tu l'appelles simplement dans le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    string[] tString = new string[] { "5", "6" };
     
    double[] newTableau = ConvertTableauStringToDouble(tString);
    Il y a peut etre une solution plus simple, mais cette méthode pourra être réutilisé dès que tu en auras besoin.

  5. #5
    Membre du Club Avatar de saraenim
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 83
    Points : 59
    Points
    59
    Par défaut
    Merci
    je vais essayer ta proposition
    bye
    never give up

  6. #6
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Points : 706
    Points
    706
    Par défaut
    C'est mieux je pense si on met un gestionnaire d'exception

    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
     
    private double[] ConvertTableauStringToDouble(string[] tableauString)
            {
                int taille = tableauString.Length;
                double[] tableauDouble = new double[taille];
                int compteur = 0;
                foreach (string element in tableauString)
                {
                     try
                     {
                        tableauDouble[compteur] = Convert.ToDouble(element);
                     }
                     catch(FormatException e)
                     {
                          tableauDouble[compteur] = 0;
                     }
                     finally
                     {
                          compteur++;
                     }
                }
                return tableauDouble;
            }
    Code VB.NET
    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
     
    Private Function ConvertTableauStringToDouble(ByVal tableauString As String()) As Double()
     
                Dim taille As Integer = tableauString.Length
     
                Dim tableauDouble(taille) As Double 
     
                Dim compteur As Integer = 0
     
                For Each element As String In tableauString
     
                     Try
     
                        tableauDouble(compteur) = Convert.ToDouble(element)
     
                     Catch e As FormatException
     
                          tableauDouble(compteur) = 0
     
                     Finally
     
                          compteur = compteur + 1
                    End Try
     
               Next
     
                return tableauDouble
        End Function
    Sinon on peut aussi utiliser ma méthode TryParse

  7. #7
    Membre du Club Avatar de saraenim
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 83
    Points : 59
    Points
    59
    Par défaut
    hallo,
    merci bien pour m'avoir envoyé le code en vb.net
    bon j'ai une petite question t'a utilisé une variable compteur que t'a oublié de déclaré c'est de type interger je pense?
    merci
    never give up

  8. #8
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Comme il travailles avec le framework 2, oubliez le foreach puisqu'il y a une méthode prévue pour ce type d'opération, ConvertAll, ce qu'il a essayé mais sans succès.

    Version simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    string[] tabStr = new string[] { "12", "-5,2" };
    double[] tabD = Array.ConvertAll<string, double>(tabStr, delegate(string s) { return Convert.ToDouble(s); });
    On peut également utiliser une méthode normale plutôt qu'anonyme si la conversion est plus compliquée, c'est plus lisible à ce moment, mais le principe reste le même
    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
    string[] tabStr = new string[] { "12", "-5,2", "9.6" };
    double[] tabD = Array.ConvertAll<string, double>(tabStr, ConvertStringToDouble);
    ...
    private double ConvertStringToDouble(string s)
    {
        double result;
     
        NumberFormatInfo ni = CultureInfo.CurrentCulture.NumberFormat;
        if (s.Contains("."))
        {
            ni = CultureInfo.GetCultureInfo("en-US").NumberFormat;
        }
     
        if (!double.TryParse(s, NumberStyles.Number, ni, out result))
        {
            // Retour d'une valeur spécifique en cas d'erreur de conversion
            result = double.NaN;
        }
     
        return result;
    }
    C'est du C#, parce que le VB.Net me donne la nausée, mais je doute que ce soit compliqué à traduire ^^
    Pas de questions techniques par MP

  9. #9
    Membre du Club Avatar de saraenim
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 83
    Points : 59
    Points
    59
    Par défaut
    salut
    merci pour ton idée sauf que j'ai une petite remarque je suis une demoiselle donc t'aurai pû dire "puisq'elle utilise le framework2"
    bye
    never give up

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

Discussions similaires

  1. Comment convertir un type int en type string
    Par vandeyy dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 05/08/2014, 14h41
  2. Réponses: 2
    Dernier message: 18/02/2009, 13h30
  3. convertir du type string au type double
    Par nafroutabs dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 15/09/2008, 10h27
  4. Réponses: 2
    Dernier message: 19/05/2007, 20h51
  5. Réponses: 2
    Dernier message: 05/06/2002, 12h29

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