vegetalain
Messages postés747Date d'inscriptionmardi 25 mars 2003StatutMembreDernière intervention11 août 2022
-
14 déc. 2006 à 10:57
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 2012
-
14 déc. 2006 à 11:39
Slt, voilà : Je voudrais savoir si l'on peut rechercher par ex. tout
les fichiers txt d'un disque dur, et modifier le contenu de façon
automatique.
J'ai des tas de fichiers text (c'est un format que j'aime bien :P) sur
mon pc qui concerne un peu tout les sujets, et je me suis amusé à faire
une mise en page qui m'est particulière (asciiart et cie). Problème :
j'aimerais changer la "tronche" de mes documents text, seulement tout
reprendre un à un c'est pas top (j'en ai pas loin de 850). Donc,
peut-on genre rechercher tous les fichiers txt sur un hd, puis
remplacer une chaine par une autre, ou sélectionner genre "tout" enfin
ce genre d'action quoi...
J'avais pensé pitète à tout chercher et à tout lister dans une liste
déroulante, et puis à chaque ligne de cette liste faire les actions
suivantes :
1 - ouvrir le fichier dans une textbox (ça ok)
2 - rechercher remplacer les caractères (ça roule...)
3 - enregistrer ! (c bon aussi)
4 - fermer en vidant le champ texte ! (vivi !!!)
5 - passer au fichier de la ligne suivante, dans la liste déroulante (alors ça par contre...)
et ainsi de suite... mais j'avoue de pas savoir comme combiner tout ça :S
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 14 déc. 2006 à 11:04
Salut voir la fonction recurcive de jrivet sur codyx pour parcourir les disques, voir utiliser InStr, et sur un topic posté ces derniers jours jrivet a apporté la solution à cette question, fais une petite recherche et tu auras ce que tu veux!
Drikce 06
Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 14 déc. 2006 à 11:39
Salut,
Bon revenons à nos moutons. [auteurdetail.aspx?ID= 74457 vegetalain] Pas besoin de passer par des textbox, ca va etre plus lent. (surtout si tu as 850 fichiers )
Je ne sais pas si ce qui est très rapide mais ca peu peu etre répondre à tes besoins (c'est bientôt noël alors soyons généreux).
Le code suivant va chercher de facon récursive dans le répertoire passé en paramètre la premiere des fichiers TXT
Il passe en revu tout les fichiers text les ouvrent, lit le contenu, remplace le text cherche par le text souhaite et sauvegarde de nouveau.
ATTENTION Si tu cherche dans tout C:\ ca va peu etre prendre du temps et toucher des fichiers que tu ne souhaites pas....
ATTENTION Bis, la recherche est sensible à la casse si il y a "Ceci " dans le fichier et que tu cherches "ceci" cela ne remplacera rien
Aller voici la procédure magique...
Private Sub ListeAllText(ByRef FSo As Object, ByVal Repertoire As String, ByVal Cherche As String, ByVal Remplace As String)
Dim Fol
Dim SubFol
Dim Fil
Dim Contenu As String
Set Fol = FSo.GetFolder(Repertoire)
'Pour chaque fichiers contenu dans repertoire
For Each Fil In Fol.Files
'si l'extensiono correspond
If UCase (FSo.GetExtensionName(Fil.Path)) = "TXT" Then
'Lit le fichier
Contenu = FSo.OpenTextFile(Fil.Path, ForReading, False).ReadAll
'remplace le text cherche par le text voulu
Contenu = Replace (Contenu, Cherche, Remplace)
'sauvegarde le fichier
Call FSo.OpenTextFile(Fil.Path, ForWriting, False).Write(Contenu)
End If
Next
For Each SubFol In Fol.SubFolders
'Appelle de la meme fonction pour les sous repertoire
Call ListeAllText(FSo, SubFol.Path, Cherche, Remplace)
Next