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 :

[VB.NET2005] With et boucle ?


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 46
    Par défaut [VB.NET2005] With et boucle ?
    Bonjour,

    Est il plus utile d'ecrire cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    with dtset.tables("TEST")
     
    For i as integer = 0 to 100000
     
    .rows(i).item(1) = "salut"
     
    next i
     
    end with
    Plutot que ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i as integer = 0 to 100000
     
    dtset.tables("TEST").rows(i).item(1) = "salut"
     
    next i
    ????

    Merci

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    ça ne sert à rien...
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 46
    Par défaut
    Ok merci...au moins ca a le merite d'etre clair !

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 200
    Par défaut
    il est vrai qu'il y a eut des rumeurs disant qu'avec with l'objet restait en mémoire et que ca gagnait du temps
    perso j'y crois pas

    et tu peux le vérifier avec un chronometre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    dim chrono as new system.diagnostics.stopwatch
     
    chrono.start
     
    traitement
     
    chrono.stop
     
    dim temps as integer = chrono.elaspedmilliseconds
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    La construction With est très controversée. Certains apprécient de ne pas avoir à réécrire le nom de la variable à chaque fois et d'autres pensent que cela nuit à la lisibilité.
    Je serais plutôt dans la deuxième catégorie.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  6. #6
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Citation Envoyé par kissskoool Voir le message
    Bonjour,

    Est il plus utile d'ecrire cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    with dtset.tables("TEST")
     
    For i as integer = 0 to 100000
     
    .rows(i).item(1) = "salut"
     
    next i
     
    end with
    Plutot que ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i as integer = 0 to 100000
     
    dtset.tables("TEST").rows(i).item(1) = "salut"
     
    next i
    ????

    Merci
    Perso dans ce cas de figure pas la peine d'utiliser le with. Le with c'est lorsque tu as plein de propriétés à mettre avec un objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    'exemple
    With MonLabel
    .text = "t nul"
    .color = color.red
    .font = new font(...)
    .tag = MonObjet
    .visible = true
    .enabled = true
    End With
    Dans ce cas la tu va gagner du temps d'exécuter et de la lisibilité de ton code (pas d'accord avec SaumonAGile )

    Meme chose dans une boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim Mon Item as new Listviewitem
    With MonItem
    for i as integer = 0 to 100
    .subitem.text = "coucou numéro " & i.tostring
    .subitem.color = color.red
    ...
    next
    End With
    D'autant plus que c'est une boucle, tu va gagner pas mal de temps (teste avec un chrono )

    Mais pour une intruction ou deux pas la peine ca embrouille plus qu'autre chose

    Tchao
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 200
    Par défaut
    Perso dans ce cas de figure pas la peine d'utiliser le with. Le with c'est lorsque tu as plein de propriétés à mettre avec un objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    'exemple
    With MonLabel
    .text = "t nul"
    .color = color.red
    .font = new font(...)
    .tag = MonObjet
    .visible = true
    .enabled = true
    End With
    Dans ce cas la tu va gagner du temps d'exécuter et de la lisibilité de ton code (pas d'accord avec SaumonAGile )
    plutot d'accord avec aspic ca fait moins paté surtout si ton objet a un nom à rallonge


    D'autant plus que c'est une boucle, tu va gagner pas mal de temps (teste avec un chrono )
    % de différence ?

    Mais pour une intruction ou deux pas la peine ca embrouille plus qu'autre chose
    2 instructions dans une boucle for de 10000 itérations ca fait quand meme 20000 instructions
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 46
    Par défaut
    Donc si j'ai bien compris, dans mon cas ce serait plutot utile, pour que dtset.tables("TEST") ne soit pas evalué à chaque itération de la boucle FOR...non ??

  9. #9
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Citation Envoyé par kissskoool Voir le message
    Donc si j'ai bien compris, dans mon cas ce serait plutot utile, pour que dtset.tables("TEST") ne soit pas evalué à chaque itération de la boucle FOR...non ??
    Je dirais oui et non donc teste avec un chrono et tu auras la réponse par toi même
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  10. #10
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 46
    Par défaut
    Bon alors je viens de faire le test avec un chrono...et le resultat est tout bonnement stupefiant (en tout cas selon ce que je pensais)...quand j ecris la boucle for avec le with ..... c'est plus lent que sans !!!

Discussions similaires

  1. [XL-2010] Problème boucle With
    Par dylan.pascal dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 10/02/2015, 09h20
  2. .Range dans boucle with
    Par epoksy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/06/2014, 15h46
  3. [XL-2007] Problème boucle with
    Par chombriko dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 25/05/2012, 16h41
  4. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 12h45
  5. Réponses: 2
    Dernier message: 29/05/2002, 20h43

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