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

ASP.NET Discussion :

Loop sur existence d'un fichier


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Par défaut Loop sur existence d'un fichier
    Bonjour,

    J'ai en petit souci algorithmique sur la boucle suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    strPicFile = request.PhysicalApplicationPath + "GeneratedGraphs\\ProductImage" + ProdId + DateTime.Now.Ticks + ".jpg";
     for (int i = 0; i < 6; i++)
         {
        while (!File.Exists(strPicFile))
          {                        
              FactoryTools.generateImageFilefromUrl(ProdImage, strPicFile);
            }
    }
    En gros tant que mon image n'est pas chargée, j'essaye de le faire seulement 5 fois de suite.
    Mais si elle est chargée je passe 5 fois dans la boucle ce qui n'est pas optimal.

    Auriez vous une idée pour optimiser ce bout de code, avec un compteur probablement.

    Merci de votre aide précieuse

  2. #2
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Tu as imbriqué un for et un while ?
    As-tu testé ce morceau de code ?
    Il me semble que tant que le fichier n'existe pas, l'exécution va rester dans la boucle while indéfiniment...
    Dans ce cas, à quoi bon répéter la boucle 5 fois ?

    Ceci dit, pour sortir d'une boucle quand tu le souhaites, tu peux utiliser le mot-clé break. Peut-être que cela répondra à ton besoin.

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Par défaut
    Mais c'est très juste dis donc
    j'avais testé mais le fichier existait toujours!!
    Mais comment utilises-tu ce break pour lui dire d'exécuter ce while un maximum de 5 fois

    Merci d'avoir mis le doigt sur une si grosse aberration

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    int nbTry = 0;
    While (!File.Exists(strPicFile))
        {
         FactoryTools.generateImageFilefromUrl(ProdImage, strPicFile);
         nbTry++;
          if(nbTry>5)break;
          }
    ça pourrait être juste ce bout de code.
    ça me donne le tournis ces boucle

  5. #5
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    Pourquoi fais tu des boucles?

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Par défaut
    En fait j'essaye d'enregistrer une image a partir d'une url, je veux lancer ma méthode un maximum de 5 fois, si je ne la récupère pas j'utilise une image par défaut.
    Mais si tu as une idée pour ne pas utiliser de boucle je suis preneur aussi

    merci

  7. #7
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    Au temps pour moi, j'ai compris.
    et Je n'ai pas mieux.

    bon code à toi,

  8. #8
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Citation Envoyé par fabienfoo Voir le message
    Mais comment utilises-tu ce break pour lui dire d'exécuter ce while un maximum de 5 fois ?
    Citation Envoyé par fabienfoo Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int nbTry = 0;
    while (!File.Exists(strPicFile))
    {
        FactoryTools.generateImageFilefromUrl(ProdImage, strPicFile);
        nbTry++;
        if (nbTry > 5) break;
    }
    Oui voilà, par exemple

    Mais dans la mesure où tu utilises un compteur, autant utiliser une boucle for et sortir en cas de succès :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (int i = 0; i < 5; i++)
    {
        FactoryTools.generateImageFilefromUrl(ProdImage, strPicFile);
        if (File.Exists(strPicFile)) break;
    }

  9. #9
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Par défaut
    Ben je vais passer mon post à résolu.
    Merci d'avoir skalpé mon while imbriqué dans un for.
    Je trouve tout de même cette boucle un peu laide mais elle fonctionne...
    Enfin si vous avez des idées pour un code plus propre je suis encore preneur.

    Tout de même répéter 5 fois l'infini ça avait qque chose de mystique

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

Discussions similaires

  1. Réponses: 17
    Dernier message: 18/08/2006, 13h13
  2. Test sur existence Fichier
    Par blackstreet dans le forum Réseau
    Réponses: 12
    Dernier message: 25/07/2006, 13h24
  3. Condition sur existence de fichier sur le disque dur
    Par manshoon dans le forum Langage
    Réponses: 3
    Dernier message: 10/05/2006, 09h58
  4. existence d'un fichier sur serveur distant
    Par Fabouney dans le forum Programmation et administration système
    Réponses: 3
    Dernier message: 17/01/2006, 10h18
  5. [FTP] Test de l'existence d'un fichier sur un serveur ftp
    Par lapartdombre dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 01/08/2005, 14h13

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