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

VB.NET Discussion :

Optimisation de code


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Octobre 2014
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Optimisation de code
    bonjour, j'ai une question un peu farfelue, après quelques mois d'abandon je me suis remis a vb.net et j'aimerais bien un truc propre plutôt que d'avoir un pavé genre :
    p2 = Val(tbprix2.Text)
    p3 = Val(tbprix3.Text)
    p4 = Val(tbprix4.Text)
    p5 = Val(tbprix5.Text)
    p6 = Val(tbprix6.Text)
    p7 = Val(tbprix7.Text)
    p8 = Val(tbprix8.Text)
    p9 = Val(tbprix9.Text)
    p10 = Val(tbprix10.Text)
    p11 = Val(tbprix11.Text)
    p12 = Val(tbprix12.Text)
    p13 = Val(tbprix13.Text)
    p14 = Val(tbprix14.Text)
    p15 = Val(tbprix15.Text)
    p16 = Val(tbprix16.Text)
    p17 = Val(tbprix17.Text)
    p18 = Val(tbprix18.Text)

    est-il possible de le réduire avec une boucle ? bon j'ai essayer de mon côté mais, pas sûr que ça fonctionne !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            Dim p1 As String
            Dim i = 1
            While i < 18
     
                p1 = ("p" + i + "=val(tbprix" + i + ".text")
                i += 1
     
            End While
    donc le but c'est réduire le code

    en vous remerciant !

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Vite fait comme cela, il y a moyen de boucler sur les contrôles et de s'assurer que ce sont les bons.

    Ceci dit, si le val() de VB.net est le même que celui de VB6-VBA, oublie le. Il n'est (probablement) pas foutu de reconnaître la virgule comme séparateur décimal. Tu peux essayer avec CSng() ou CDbl(), mais tous les types numériques de .net ont des méthodes parse et tryparse pour convertir un texte en nombre.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Octobre 2014
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    pour Cdbl pas de prob, quant au bouclage sur les controles j'ai rien compris du tout ... :/

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Pour compléter la remarque de Clément, val est une instruction vba!

    La référence vb6 est activé par défaut dans le projet visual studio! Bon nombre de nos contemporain code en vba pensant faire du vb.net. Si d'aventure le chef de projet décoche la librairie Vb6 (et c'est ce que je fais systématiquement) le programme explose!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i as integer=1 to 10
    MyVar= me.controls("textbox" & i.tostring).texte
    Next
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    number = double.Parse("2,5", CultureInfo.GetCultureInfo("fr-FR").NumberFormat)
    Dernière modification par Invité ; 20/07/2017 à 08h07.

  5. #5
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Octobre 2014
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Merci bien je vais tester cela, (je ne me considère pas comme expert VB.net (d'ailleurs j'ai appris en autodidacte)), je vais de ce pas décocher la lib vb6

  6. #6
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Octobre 2014
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i as integer=1 to 10
    MyVar= me.controls("textbox" & i.tostring).texte
    Next
    ok pour le myvar j'ai pigé mais du coup je dois distribuer dans plusieurs variables comme j'ai cité plus haut p1, p2,p3,....p18 ou alors j'ajoute dans le me.control ?
    style: me.control("p" & i.tostring "=tbtemp" & i.tostring).text ?

    en fait j'étais pas loin de la réponse avec mon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            Dim p1 As String
            Dim i = 1
            While i < 19
     
                p1 = "Val(tbprix" & i & ".Text)"
            i += 1
     
            End While

  7. #7
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Octobre 2014
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    voilà ce que j'ai

    Nom : code.jpg
Affichages : 319
Taille : 132,3 Ko

  8. #8
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 149
    Points : 7 392
    Points
    7 392
    Billets dans le blog
    1
    Par défaut
    Et si tu remplaçait test px par un tableau ?


    Ainsi :

    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    dim p as integer()
     
    for i as integer = 2 to 18
         p(i) = cint(me.controls("textbox" & i.tostring).text)
    next
    On ne jouit bien que de ce qu’on partage.

  9. #9
    Invité
    Invité(e)
    Par défaut
    (je ne me considère pas comme expert VB.net (d'ailleurs j'ai appris en autodidacte)
    j'ai 20 ans de VB3...VB6 et seulement 3 ans en VB.Net, difficile de revendique un salaire de séniorité avec une expérience de junior! il m'arrive de faire des écarts de "langage"!

  10. #10
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Octobre 2014
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    je me suis finalement débrouillé autrement merci à tous et toutes

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

Discussions similaires

  1. optimiser le code d'une fonction
    Par yanis97 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 15/07/2005, 08h41
  2. Optimiser mon code ASP/HTML
    Par ahage4x4 dans le forum ASP
    Réponses: 7
    Dernier message: 30/05/2005, 10h29
  3. optimiser le code
    Par bibi2607 dans le forum ASP
    Réponses: 3
    Dernier message: 03/02/2005, 14h30
  4. syntaxe et optimisation de codes
    Par elitol dans le forum Langage SQL
    Réponses: 18
    Dernier message: 12/08/2004, 11h54
  5. optimisation du code et var globales
    Par tigrou2405 dans le forum ASP
    Réponses: 2
    Dernier message: 23/01/2004, 10h59

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