Optimisation code vitesse

geoffreyjt Messages postés 26 Date d'inscription jeudi 26 février 2009 Statut Membre Dernière intervention 28 février 2016 - 11 août 2013 à 16:03
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 14 août 2013 à 10:45
Bonjour,
je débute et je voudrai optimiser un code , le voici :

NomDuFilmAvecEspace est une variable string

NomDuFilmAvecEspace = Replace(NomDuFilmAvecEspace, " ", " ")
NomDuFilmAvecEspace = Replace(NomDuFilmAvecEspace, " ", " ")
NomDuFilmAvecEspace = Replace(NomDuFilmAvecEspace, " ", " ")
NomDuFilmAvecEspace = Replace(NomDuFilmAvecEspace, " ", " ")
NomDuFilmAvecEspace = Replace(NomDuFilmAvecEspace, " ", " ")
NomDuFilmAvecEspace = Replace(NomDuFilmAvecEspace, " ", " ")

ce code doit être lu dans cet ordre et ligne par ligne , mais avec un peux de recherche j'ai trouver le "with , end with" qui est plus rapide.

or quand je fait comme ceci :

With NomDuFilmAvecEspace
Replace(NomDuFilmAvecEspace, " ", " ")
Replace(NomDuFilmAvecEspace, " ", " ")
Replace(NomDuFilmAvecEspace, " ", " ")
Replace(NomDuFilmAvecEspace, " ", " ")
Replace(NomDuFilmAvecEspace, " ", " ")
Replace(NomDuFilmAvecEspace, " ", " ")
End With

ca ne semble pas fonctionner

y aurai t'il un moyen d'optimiser le code pour le rendre plus rapide ?
merci

3 réponses

NHenry Messages postés 15119 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 19 mai 2024 159
11 août 2013 à 16:55
Bonjour,

Pour t'aider, il faut savoir ce que tu veux faire avec ces lignes de codes.
Car tu utilises Replace, mais essayes d'appliquer ma signature pour optimiser un peu ton code.
0
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 1
13 août 2013 à 15:14
Bonjour,

Ajouter un With ne fonctionnera pas puisque c'est fait pour accéder plus facilement à un objet à travers .[propriété ou méthode]. Exemple (code VB6 mais le principe du With est me semble-t-il resté identique) :
Dim monMail As Email
Set monMail = lireEmail("c:\temp\email.eml")
monMail.Parties(1).PieceJointe(2).Nom = "nouveau-nom.txt"
monMail.Parties(1).PieceJointe(2).Contenu = Replace(monMail.Parties(1).PieceJointe(2).Contenu, "cacahuète", "peanut")

Dim monMail As Email
Set monMail = lireEmail("c:\temp\email.eml")
With monMail.Parties(1).PieceJointe(2)
 .Nom = "fichier.txt"
 .Contenu = Replace(.Contenu, "cacahuète", "peanut")
End With

Ces deux bouts de code font la même chose, sauf que le deuxième est bien plus lisible que le premier... En interne, je ne sais par contre pas du tout si ça change quelque chose ou si VB ajoute systématiquement devant un point tout seul ce qu'il y a après le With...

Pour revenir à l'extrait que tu as posté, que remplaces-tu exactement ? Des espaces consécutifs ou d'autres choses que tu n'as pas voulu nous montrer ?
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
14 août 2013 à 10:45
Salut

Déjà, première chose : Quel langage utilises-tu ?
Tu as posté ta question dans la catégorie .Net mais tes lignes ressemblent à du VB6 ou du VBA.
C'est important pour la suite, histoire de pas faire perdre de temps à tout le monde.

Ensuite, pourquoi exécutes-tu plusieurs fois la même ligne de code ?

Quant au With/End With, cela ne change rien à la rapidité d'exécution, juste une facilité de présentation/programmation.
Mais ta mise en pratique n'est pas correcte.
Voir les exemples de l'aide.
0
Rejoignez-nous