Modifier un texte ds le bloc note

Résolu
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 à 10:39
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

6 réponses

Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
29 oct. 2007 à 13:57
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
3
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
29 oct. 2007 à 10:57
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 ...
0
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 à 11:20
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
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
29 oct. 2007 à 12:23
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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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 à 13:48
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 !!!
0
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
Merci a toi c'est excatement ca c'est genial!!!
0
Rejoignez-nous