Renommer tous les fichiers d'un dossier (VB6)
Fermé
Aspirant programmeur novice
-
12 sept. 2011 à 23:58
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 28 sept. 2011 à 08:50
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 28 sept. 2011 à 08:50
A voir également:
- Renommer tous les fichiers d'un dossier (VB6)
- Renommer plusieurs fichiers - Guide
- Dossier appdata - Guide
- Mettre un mot de passe sur un dossier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
2 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 306
13 sept. 2011 à 11:04
13 sept. 2011 à 11:04
Bonjour l'aspirant etc.
tes fichiers ont ils toujours le m^me suffixe, .jpg par ex pour des photos ou ...?
voici le début du code ( le renommage n'est pas encore traité car si les suffixes sont différents, il faudra extraire à chaque test le suffixe)
tes fichiers ont ils toujours le m^me suffixe, .jpg par ex pour des photos ou ...?
voici le début du code ( le renommage n'est pas encore traité car si les suffixes sont différents, il faudra extraire à chaque test le suffixe)
ChDir tonrepertoire fich = Dir(nom & "*.*") While fich <> "" If fich.Name = nom & "*" Then End If fich = Dir Wend
heyquem
Messages postés
759
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
29 décembre 2013
130
Modifié par heyquem le 13/09/2011 à 09:07
Modifié par heyquem le 13/09/2011 à 09:07
bonjour,
permets moi de te demander pourquoi tu utilises VB6, et d'après ton pseudo pourquoi tu APPRENDS VB6
en dépit du fait que
- cette version de VB est sortie en 1998 (13 !!) ,
- qu'il n'y a plus de support étendu assuré par Microsoft depuis mars 2008 pour cette version,
- qu'elle ne comporte pas la possibilité de faire de la programmation objet
et enfin
- que c'est un mauvais langage:
« Visual Basic est un des langages les plus utilisés pour l'écriture d'applications commerciales, c'est-à-dire d'applications ne faisant que manipuler des chiffres et des lettres. Ce BASIC est particulièrement adapté à cet usage, pas d'accès système, pas de performances critiques, développement rapide, compétences apparemment faibles. Le défaut étant justement sa facilité de mise en oeuvre : un débutant VB pourra rapidement faire un programme opérationnel mais souvent tellement mal fait (sans analyse, structures ni règles, sans même la moindre expérience en programmation parfois...) qu'il sera difficilement maintenable par la suite. Beaucoup de projets VB sont à refaire entièrement car ils ont été trop mal faits par des débutants VB. »
https://fr.wikipedia.org/wiki/Visual_Basic
permets moi de te demander pourquoi tu utilises VB6, et d'après ton pseudo pourquoi tu APPRENDS VB6
en dépit du fait que
- cette version de VB est sortie en 1998 (13 !!) ,
- qu'il n'y a plus de support étendu assuré par Microsoft depuis mars 2008 pour cette version,
- qu'elle ne comporte pas la possibilité de faire de la programmation objet
et enfin
- que c'est un mauvais langage:
« Visual Basic est un des langages les plus utilisés pour l'écriture d'applications commerciales, c'est-à-dire d'applications ne faisant que manipuler des chiffres et des lettres. Ce BASIC est particulièrement adapté à cet usage, pas d'accès système, pas de performances critiques, développement rapide, compétences apparemment faibles. Le défaut étant justement sa facilité de mise en oeuvre : un débutant VB pourra rapidement faire un programme opérationnel mais souvent tellement mal fait (sans analyse, structures ni règles, sans même la moindre expérience en programmation parfois...) qu'il sera difficilement maintenable par la suite. Beaucoup de projets VB sont à refaire entièrement car ils ont été trop mal faits par des débutants VB. »
https://fr.wikipedia.org/wiki/Visual_Basic
hé bien, simplement parce que c'est le langage que j'ai appris à l'école et que je n'ai pas le temps (et pas vraiment la nécessité) d'en apprendre un autre. Quant à la version (dont je ne connaissais même pas la date de sortie !) c'est celle que j'ai sous la main.
Mon pseudo est plutôt ironique, je vis plus sur mes restes de VB, j'ai arrêté d'apprendre ;)
Mon pseudo est plutôt ironique, je vis plus sur mes restes de VB, j'ai arrêté d'apprendre ;)
heyquem
Messages postés
759
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
29 décembre 2013
130
13 sept. 2011 à 11:47
13 sept. 2011 à 11:47
Merci d'avoir répondu
En fait , tu ne t'intéresses pas à l'outil que tu utilises
Je viens ainsi de comprendre une chose: l'existence de forums sur lesquels des gens comme toi peuvent aboutir à un code fonctionnel parce qu'ils le font en fait faire par d'autres explique en grande partie que VB6, qui est complétement dépassé, continue d'être autant utilisé.
Malgré tout, je te suggère de regarder la courbe de VB dans l'index TIOBE.
https://www.tiobe.com/tiobe-index//
Malgré les critiques qu'on peut faire à cet index, il donne très très très grossièrement une idée générale de la position d'un langage.
Dans cet index (Visual) Basic regroupe BASIC et les VB, mais plus personne n'utilise les VB 1 à 5 je suppose. On voit sur la courbe que c'est en nette perte de vitesse.
Visual Basic.NET est comptabilisé à part, il se trouve en position 39
En fait , tu ne t'intéresses pas à l'outil que tu utilises
Je viens ainsi de comprendre une chose: l'existence de forums sur lesquels des gens comme toi peuvent aboutir à un code fonctionnel parce qu'ils le font en fait faire par d'autres explique en grande partie que VB6, qui est complétement dépassé, continue d'être autant utilisé.
Malgré tout, je te suggère de regarder la courbe de VB dans l'index TIOBE.
https://www.tiobe.com/tiobe-index//
Malgré les critiques qu'on peut faire à cet index, il donne très très très grossièrement une idée générale de la position d'un langage.
Dans cet index (Visual) Basic regroupe BASIC et les VB, mais plus personne n'utilise les VB 1 à 5 je suppose. On voit sur la courbe que c'est en nette perte de vitesse.
Visual Basic.NET est comptabilisé à part, il se trouve en position 39
Ecoute Heyquem,
j'ai appris ce langage, et pour le "programme" que je compte faire, cela suffit amplement. Je suis scientifique, je parle couramment 3 langues, je travaille, j'ai des occupations diverses, une vie sociale et j'essaye même de faire du sport quand je peux. Je n'ai pas le temps d'apprendre d'autres langages (si je pouvais tout connaître, crois-moi que ça me plairait pourtant), surtout pour faire un programme de 20 lignes tous les 2 ans.
Si je m'intéresse à mon outil ? Oui et non. Oui, pour ce qu'il m'apporte. Après, où, quand, comment il a été créé, s'il faisait beau ou non, je t'avoue que je m'en fous pas mal. Quand j'utilise un marteau, c'est pour planter un clou, ce n'est pas pour le psychanalyser. Est-ce que tu calcules les forces de Coriolis dans tes toilettes lorsque tu tires la chasse, ou as-tu modélisé les transferts de chaleur de ton frigo pour savoir en combien de temps ta bière sera fraîche ? Je ne pense pas.
J'aime faire les choses seul, mais quand je n'arrive toujours pas au bout d'un certain temps, je demande. Dans la vie, il y a ce qu'on appelle des spécialistes, ou experts. Ce n'est ni honteux ni abominable que de faire appel à eux. Entre se faire faire son code et demander une indication, il y a un monde, non ?
Si on poursuit ta logique, quelqu'un qui cherche un mot dans le dictionnaire est illettré ? Et les écoles, les universités, bourrées de gens qui comptent sur les autres (les professeurs) pour être formés ? Allez, arrête ton délire.
Merci pour le lien (la courbe est alarmante, n'empêche que 7è, c'est pas dégueulasse non plus)
j'ai appris ce langage, et pour le "programme" que je compte faire, cela suffit amplement. Je suis scientifique, je parle couramment 3 langues, je travaille, j'ai des occupations diverses, une vie sociale et j'essaye même de faire du sport quand je peux. Je n'ai pas le temps d'apprendre d'autres langages (si je pouvais tout connaître, crois-moi que ça me plairait pourtant), surtout pour faire un programme de 20 lignes tous les 2 ans.
Si je m'intéresse à mon outil ? Oui et non. Oui, pour ce qu'il m'apporte. Après, où, quand, comment il a été créé, s'il faisait beau ou non, je t'avoue que je m'en fous pas mal. Quand j'utilise un marteau, c'est pour planter un clou, ce n'est pas pour le psychanalyser. Est-ce que tu calcules les forces de Coriolis dans tes toilettes lorsque tu tires la chasse, ou as-tu modélisé les transferts de chaleur de ton frigo pour savoir en combien de temps ta bière sera fraîche ? Je ne pense pas.
J'aime faire les choses seul, mais quand je n'arrive toujours pas au bout d'un certain temps, je demande. Dans la vie, il y a ce qu'on appelle des spécialistes, ou experts. Ce n'est ni honteux ni abominable que de faire appel à eux. Entre se faire faire son code et demander une indication, il y a un monde, non ?
Si on poursuit ta logique, quelqu'un qui cherche un mot dans le dictionnaire est illettré ? Et les écoles, les universités, bourrées de gens qui comptent sur les autres (les professeurs) pour être formés ? Allez, arrête ton délire.
Merci pour le lien (la courbe est alarmante, n'empêche que 7è, c'est pas dégueulasse non plus)
Modifié par Aspirant programmeur novice le 14/09/2011 à 11:07
merci de ton aide. J'ai essayé ton brin de code, mais j'avoue avoir été inapte à l'utiliser. De quelle classe est la variable "fich" que tu donnes ? Oui, il s'agit de traiter des fichiers "*.jpg". Typiquement, je transfère mes photos, et ensuite je les renomme avec un préfixe + un numéro.
Je te poste ci-dessous mon code :
Option Explicit Dim nom, chemin, texte As String Private Sub Drive1_Change() Dir1.Path = Drive1.Drive End Sub Private Sub Dir1_Change() File1.Path = Dir1.Path End Sub Private Sub Command1_Click() Call renommer End Sub Sub renommer() Dim nombre, i As Integer, fichier As String texte = Text1.Text 'texte entré par l'utilisateur chemin = Dir1.Path 'dossier sélectionné par l'utilisateur nombre = File1.ListCount 'compte le nombre de fichiers dans le dossier For i = 1 To nombre If i < 10 Then nom = texte + " - 0" + Str(i) + ".jpg" Else nom = texte + " - " + Str(i) + ".jpg" End If '=> crée le nom à donner au prochain fichier à renommer Name chemin + "\" + File1 As chemin + "\" + nom Next i End Sub
Ce que j'ai souligné correspond au code lorsque l'utilisateur sélectionne un fichier. ça marche. Mais je voudrais trouver un moyen d'étendre le renommage à tous les fichiers du dossier, à l'aide de la boucle en "i".
Dans le genre : for i = X to Y, Name file(i) as texte
Je pense que c'est juste un problème de "vocabulaire" que je n'ai pas ?
Merci !
14 sept. 2011 à 11:34
ci joint code VBA (j'espère que c'est identique sur VB6 pour la ligne "Name fich As...")
c'est un bout de code pas la procédure
tu n'as pas besoin d'indiquer le chemin car avec chdir (comme sous ce bon vieux DOS) on est dans le répertoire baptisé ci dessous "tonrepertoire"
14 sept. 2011 à 11:58
A mon tour de passer après toi michel ;-)
Je pense qu'il vaudrait mieux initialiser num en dehors de la boucle while sinon il sera toujours égal à 1...
14 sept. 2011 à 12:00
17 sept. 2011 à 15:43
Le programme marche. J'ai changé 2-3 trucs pour personnaliser :
ChDir Dir1.Path (dossier sélectionné dans une liste par l'utilisateur) Cette ligne est d'ailleurs facultative, je viens de me rendre compte. Le programme "comprend" que les fichiers dont je vais parler sont ceux du dossier sélectionné
Puis un petit "If" pour rajouter le "0" de la numération de 01 à 09, petite touche d'esthétique ...
Ainsi qu'une msgbox pour que l'utilisateur ait un retour.
Je peux vous envoyer le programme si vous le désirez, même si je suppose que ça ne vous prendrait pas beaucoup de temps à le refaire.