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 :

Recommencer une boucle [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Par défaut Recommencer une boucle
    Bref, je voudrais simplement que lorsque j'ai une erreur dans la boucle, je recommence la boucle où elle était avant cette erreur.

    Exemple: si debut était à 3 to 10 et qu'il y a une erreur et bien je voudrais pas passer a 4 to 10 mais recommencer le 3 to 10.

    J'ai essayé plein de chose mais ma variable "debut" ne veut pas changer.

    La seule condition que je peux utiliser est si il y a une erreur.

    MERCI !

    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
     
    Dim debut As Integer = 0
    Dim fin As Integer = 10
     
    For startboucle = debut To fin Step 1
     
    Try
     
    ......
     
    Catch ex As Exception
    MessageBox.Show("Une erreur")
     
    End Try
    Next startboucle

  2. #2
    Membre chevronné
    Homme Profil pro
    Caféinomane
    Inscrit en
    Septembre 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Caféinomane

    Informations forums :
    Inscription : Septembre 2011
    Messages : 202
    Par défaut
    Ma proposition, pour refaire une itération ratée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim debut As Integer = 0
    Dim fin As Integer = 10
     
    For startboucle = debut To fin Step 1
     
    Try
     
    ......
     
    Catch ex As Exception
    MessageBox.Show("Une erreur")
    startboucle -= 1
    End Try
    Next startboucle
    Edit : Oups, je crois que j'ai mal compris la question... Si l'idée est de recommencer la boucle au point de départ il faut mettre
    et non pas

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Par défaut
    Cela fonctionne très bien je t'en remercie et merci à tous les autres pour votre temps.


    Citation Envoyé par franticfranz Voir le message
    Ma proposition, pour refaire une itération ratée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim debut As Integer = 0
    Dim fin As Integer = 10
     
    For startboucle = debut To fin Step 1
     
    Try
     
    ......
     
    Catch ex As Exception
    MessageBox.Show("Une erreur")
    startboucle -= 1
    End Try
    Next startboucle
    Edit : Oups, je crois que j'ai mal compris la question... Si l'idée est de recommencer la boucle au point de départ il faut mettre
    et non pas

  4. #4
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 128
    Par défaut
    essayes le goto
    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
     
    Dim debut As Integer = 0
    Dim fin As Integer = 10
     
    1: For startboucle = debut To fin Step 1
     
    Try
     
    ......
     
    Catch ex As Exception
    MessageBox.Show("Une erreur")
     goto 1
    End Try
    Next startboucle

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    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 204
    Par défaut
    le goto est à éviter de nos jours ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    dim reussite as boolean
    for
      reussite = false 
      while reussite = false 
        try
          'code
          reussite = true
        catch
          ' erreur ...
        end try
      end while
    next
    attention tout de même à avoir une condition de sortie de boucle infinie
    pour plus de lisibilité, tu peux mettre le code du try catch dans une fonction à part qui demande la valeur à traiter (issue de la boucle for)
    ce qui permet alors de faire plus facilement x tentatives
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    for i
      if traitement(i) then continue for
      if not traitement(i) then msgbox "ca fait 2x que je tente pour " & i.tostring & " et ca passe pas ..."
    next
    (...)
    private function traitement(i as integer) as boolean
      try
        ' traitement
        return true
      catch
        return false
      end try
    end function
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/02/2015, 15h46
  2. [XL-2010] Au millieu d'une boucle, la recommencer
    Par CristofMartins dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/04/2013, 12h49
  3. [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
  4. [Vb.net] Indexé un objet crée dans une boucle
    Par picpic dans le forum Windows Forms
    Réponses: 10
    Dernier message: 17/12/2003, 14h37
  5. Pause dans une boucle
    Par HT dans le forum Langage
    Réponses: 4
    Dernier message: 03/06/2003, 08h52

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