Tyrell2
Messages postés251Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention 2 novembre 2010
-
2 nov. 2010 à 08:48
Tyrell2
Messages postés251Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention 2 novembre 2010
-
2 nov. 2010 à 10:25
bonjour,
à un moment du programme je souhaite créer un nouveau fichier txt (je sais faire)
je m'assure d'abord que le fichier existe ou pas sur le HDD
mais j'ai un problème avec le nom à lui donner :
s'il n'existe pas c'est simple je le créé (je sais faire)
et s'il existe déjà alors j'en créé un nouveau avec un chiffre en plus à la fin du nom (je sais faire pour "1")
ce que je ne sais pas faire :
j'aimerai pouvoir créer autant de fichier que possible suivant l'existence ou pas des 2 fichiers précédents,
c'est à dire avec "2" ou "3" ou "4", ou etc... à la fin
mais je ne vois pas comment mettre ça en place, c'est à dire scanner la présence, remonter le nom du plus élevé, et incrémenter le nom en fonction...
cs_Fabrice90
Messages postés18Date d'inscriptionmardi 19 mai 2009StatutMembreDernière intervention16 octobre 20111 2 nov. 2010 à 09:35
Salut,
Je pense que ce code va pouvoir t'aider :
[i]On vérifie si le fichier 'fichier-0.txt' n'existe pas, s'il existe:
on incrémente i et on vérifie si le fichier 'fichier-1.txt' n'existe pas, s'il existe:
...
on incrémente i et on vérifie si le fichier 'fichier-i.txt' n'existe pas, s'il n'existe pas, on le créer et on sort de la boucle while./i
i = 0
sortie = False
Do While sortie = False
If not objFSO.FileExists("fichier-" & i & ".txt") Then 'Si le fichier n'existe pas, on le créer
objFSO.CreateTextFile "fichier-" & i & ".txt"
sortie = True 'Permet de sortir de la boucle while
End If
i = i + 1
Loop
Je l'ai codé directement, je ne l'ai pas testé mais je pense qu'il fonctionne.
BOBO CALIMERO
Messages postés22Date d'inscriptionvendredi 31 octobre 2003StatutMembreDernière intervention 2 novembre 2010 2 nov. 2010 à 10:17
Personnellement, j'utilise une autre méthode. Je n'ajoute pas un indice à la fin de mon fichier mais la date et l'heure en cours.
Du coup je gère des noms de fichier tels que "Fichier_2010-11-02_10-30-53" (AAAA MM JJ HH MM SS).
J'utilise des variables systèmes (Date et Heure) pour éviter de déclarer et utiliser des variables supplémentaires (comme la variable i mais je suis maniaque !) et des fonctions telles que Date, Year, Month, etc.
J'évite les noms de fichiers doubles grâce à la précision apportée dans le nom de mes fichiers ; Si je sais que je ne crée pas 2 fichiers à la même seconde, alors je précise l'heure à la seconde près !
Sans "remettre en question la réponse" de Fabrice, qui est correcte, je crois qu'on peut simplifier (et s'affranchir de la variable sortie) :
i = 0
Do While objFSO.FileExist("Fichier-" & i & ".txt") = True 'Tant que le fichier existe
i = i + 1 'Augmente son indice
loop
objFSO.CreateTextFile "Fichier-" & i & ".txt" 'Crée le fichier