Modifier un texte ds le bloc note [Résolu]

Messages postés
17
Date d'inscription
lundi 29 octobre 2007
Statut
Membre
Dernière intervention
4 décembre 2009
- - Dernière réponse : cs_jojac
Messages postés
17
Date d'inscription
lundi 29 octobre 2007
Statut
Membre
Dernière intervention
4 décembre 2009
- 29 oct. 2007 à 14:21
bjr a tous
voila je souhaite ouvrir un fichier existant qui s'ouvre avec le bloc note et rechercher un mot du genre "_XXXXXX" pour le remplacer par "111_XXXXXX" pour ensuite l'enregistrer sous un nom different.J'esper que vous comprendrez ce que je veu faire et que vous pourrez m'aider.merci d'avance
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
9
3
Merci
Essaye comme ca :

Dim Buffer As String
Dim fn As Long
Dim txt1 As String
Dim txt2 As String
Dim txt3 As String
txt1 = "_XXXXXX" ' Il faut mettre les chaine de carctère entre guillemets
txt2 = Textbox1.Text ' Ne jamais se baser sur la propriété par défaut d'un controle
txt3 = txt2 & txt1
fn = Freefile
Open "TonFichier.txt" For Input As #fn
Buffer = Input(LOF(fn), #fn)
Close #fn
Buffer = Replace(Buffer, txt1, txt3)
Open "NouveauFichier.txt" For Output As #fn
Print #fn, Buffer
Close #fn

A noter que le txt2 ne sert à rien et que le contenu de la textbox pourrait être directement concaténé avec celui de txt1 dans txt3.
Par contre, je pense que tu serais mieux à faire une petite sub pour ca :

Public sub PrefixeDansFichier(byval Src as string, Dst as string, Search As String, Prefix As String)
Dim Buffer As String
Dim fn As Long

fn = Freefile
' Ouverture du fichier source
Open Src For Input As #fn
' Lecture du contenu du fichier et rangement dans le buffer
Buffer = Input(LOF(fn), #fn)
Close #fn
' Remplacement des occurences du mot cherché
Buffer = Replace(Buffer, Search, Prefixe & Search)
' Ouverture du nouveau fichier
Open Dst For Output As #fn
' Ecriture du buffer modifié dans ce fichier
Print #fn, Buffer
Close #fn
End Sub

Et tu l'appelles comme ca ...
PrefixeDansFichier "FicSrc.txt", "FicDst.txt", "_XXXXXX", Textbox1.Text

Ca te donne une procédure basique, simple, réutilisable et totalement déconnecté de ta GUI

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 206 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Kristof_Koder
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
9
0
Merci
A supposer que tu veuilles rempalcer toutes les occurences de ton mot par la même chose dans ce fichier, tu peux faire un truc du genre :

Dim Buffer As String
Dim fn As Long

fn = Freefile
' Ouverture du fichier source
Open "TonFichier.txt" For Input As #fn
' Lecture du contenu du fichier et rangement dans le buffer
Buffer = Input(LOF(fn), #fn)
Close #fn
' Remplacement des occurences du mot cherché
Buffer = Replace(Buffer, "_XXXXXX", "111_XXXXXX")
' Ouverture du nouveau fichier
Open "NouveauFichier.txt" For Output As #fn
' Ecriture du buffer modifié dans ce fichier
Print #fn, Buffer
Close #fn
' Si besoin, suppression du fichier source
Kill "TonFichier.txt"

Avec cela, ca devrait fonctionner ...
Commenter la réponse de Kristof_Koder
Messages postés
17
Date d'inscription
lundi 29 octobre 2007
Statut
Membre
Dernière intervention
4 décembre 2009
0
Merci
deja merci de ta reponse ultra rapide!!!
 mai encore une petite chose, en realite je ne veu pas tout a fait modifier _XXXXX par 111_XXXXXX mai rajouter 111 devant _XXXXXX sachant que 111 est le text d'une de mes textbox
Commenter la réponse de cs_jojac
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
9
0
Merci
C'est ce que fera mon appel à la fonction Replace() (il vaudrait mieux y mettre Replace$() d'ailleur !)
En effet, je remplace "_XXXXXX" par "111_XXXXXX", donc l'effet final est que je rajoute "111" devant "_XXXXXX". C'est bience que tu voulais, non ?
Commenter la réponse de Kristof_Koder
Messages postés
17
Date d'inscription
lundi 29 octobre 2007
Statut
Membre
Dernière intervention
4 décembre 2009
0
Merci
en effet c'est bien ce que je voulai merci deja pour ca mai en fait je voulai pouvoir changer les "111" a n'importe kel moment sans modifier le programme juste en modifiant une textbox, c'est pour ca que j'ai modifier comme suivant

Dim Buffer As String
  Dim fn As Long 
  Dim txt1 As String
  Dim txt2 As String
  Dim txt3 As String
  txt1 = _XXXXXX
  txt2 = Textbox1
  txt3 = txt2 & txt1
  fn = Freefile 
  Open "TonFichier.txt" For Input As #fn 
  Buffer = Input(LOF(fn), #fn)
  Close #fn 
  Buffer = Replace(Buffer, txt2, txt3)
  Open "NouveauFichier.txt" For Output As #fn  
  Print #fn, Buffer
  Close #fn

Mais ca ne marche pas !!!
Commenter la réponse de cs_jojac
Messages postés
17
Date d'inscription
lundi 29 octobre 2007
Statut
Membre
Dernière intervention
4 décembre 2009
0
Merci
Merci a toi c'est excatement ca c'est genial!!!
Commenter la réponse de cs_jojac