boufcai
Messages postés8Date d'inscriptionmercredi 23 août 2006StatutMembreDernière intervention23 août 2006
-
23 août 2006 à 11:20
boufcai
Messages postés8Date d'inscriptionmercredi 23 août 2006StatutMembreDernière intervention23 août 2006
-
23 août 2006 à 17:46
Bonjour,
Alors voila mon problème...
Tout d'abord je ne connaîs pas grand chose en prog, je ne fais que du HTML.
Je voulais faire un truc qui me permet de changer une valeur dans un fichier texte.
Voila l'allure de mon fichier
...
Text identifiable = XXX
...
XXX étant la valeur que je veux remplacer et "Text identifiable" est toujours le même. Je prend cette valeur dans mon tableau excel ainsi que le nom du fichier. Mais pour ces deux éléments je vais me débrouiller...
Voilà, merci.
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 23 août 2006 à 14:22
Salut,
Regarde du cote de l'API
Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Il faut simplement que ton fichier soit au "format" INI
Mofiie ton fichier comme ceci
[Valeurs]
....
Text identifiable = XXX
...
Dans ton Cas elle s'utilise comme ceci:
boufcai
Messages postés8Date d'inscriptionmercredi 23 août 2006StatutMembreDernière intervention23 août 2006 23 août 2006 à 14:32
Salut,
Je ne peux pas mettre mon fichier en ini, car je veux faire une boucle sur plein de fichiers (environ 500...).
Je regarde les fonctions de l'API.
merci
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 23 août 2006 à 14:55
Salut,
Ce code dvrait foncitonner pour Injecter [Valeurs] a chaque debut de fihcier.
Place simplement tout les fichiers a modifier dans le meme repertoire
Dim Fso As New FileSystemObject
Dim Fi As File
Dim Fo As Folder
Dim TStream As TextStream
Dim Contenu As String
Set Fo = Fso.GetFolder(CheminDURep)
For Each Fi In Fo.Files
'on verifie l'extension du fichier (tu pêux leurs mettre n'importe quelle extension
If Fso.GetExtensionName(Fi.Path) = "txt" Then
'ON ouvre le fichier en lecture
Set TStream = Fso.OpenTextFile(Fi.Path, ForReading)
'On place tout le contenu dans une chaine de caractere
Contenu = TStream.ReadAll
Call TStream.Close
'Place [Valeurs]" au début du fichier
Contenu = "[Valeurs]" & vbCrLf & Contenu
'On ouvre le fichier en écriture
Set TStream = Fso.OpenTextFile(Fi.Path, ForWriting)
'on ecrit le nouveau contenu
Call TStream.Write(Contenu)
'Et onferme
Call TStream.Close
End If
Next
Set Fo = Nothing
Set Fso = Nothing
Set Fi = Nothing
Set TStream = Nothing
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 23 août 2006 à 15:16
> boufcai: J allais oublie il te faut ajouter la référence Microsoft Scripting Runtime sinon il ne reconnaitra pas les objet FileSytemObject, File, Folder et TextStream