cs_jojac
Messages postés17Date d'inscriptionlundi 29 octobre 2007StatutMembreDernière intervention 4 décembre 2009
-
29 oct. 2007 à 10:39
cs_jojac
Messages postés17Date d'inscriptionlundi 29 octobre 2007StatutMembreDerniè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
Kristof_Koder
Messages postés918Date d'inscriptionvendredi 3 août 2007StatutMembreDernière intervention27 octobre 200810 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
Kristof_Koder
Messages postés918Date d'inscriptionvendredi 3 août 2007StatutMembreDernière intervention27 octobre 200810 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"
cs_jojac
Messages postés17Date d'inscriptionlundi 29 octobre 2007StatutMembreDerniè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
Kristof_Koder
Messages postés918Date d'inscriptionvendredi 3 août 2007StatutMembreDernière intervention27 octobre 200810 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 ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_jojac
Messages postés17Date d'inscriptionlundi 29 octobre 2007StatutMembreDerniè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