MàJ Fichier [Résolu]

Signaler
Messages postés
8
Date d'inscription
mercredi 23 août 2006
Statut
Membre
Dernière intervention
23 août 2006
-
boufcai
Messages postés
8
Date d'inscription
mercredi 23 août 2006
Statut
Membre
Dernière intervention
23 août 2006
-
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.

12 réponses

Messages postés
8
Date d'inscription
mercredi 23 août 2006
Statut
Membre
Dernière intervention
23 août 2006

C'est bon j'ai fais ce que je voulais.


Un grand merci à jrivet et MPi.
Chô chô
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
15
Salut,

De quel genre de fichier parles-tu ? fichier texte, binaire, Excel ???


Le principe serait de mettre le texte dans une variable String et faire un Replace dans cette variable

strVariable = LeTexteàModifier

strVariable = Replace(strVariable, "XXX", "Text identifiable")

MPi
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
46
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:

Call WritePrivateProfileString("Valeurs", "Text Identifiable", "XXX", CheminFichier)

@+, Julien
Messages postés
8
Date d'inscription
mercredi 23 août 2006
Statut
Membre
Dernière intervention
23 août 2006

Halo halo,


il s'agit d'un fichier texte.


Je vois deja ce que je faire avec les infos


Merci
Messages postés
8
Date d'inscription
mercredi 23 août 2006
Statut
Membre
Dernière intervention
23 août 2006

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
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
46
Fais toi un petit Bout de code qui Ecrit [Valeurs] Dans le debut de chaque fichier.
et ensuite utilise WritePrivateProfileString
@+, Julien
Messages postés
8
Date d'inscription
mercredi 23 août 2006
Statut
Membre
Dernière intervention
23 août 2006

Ok j'essaye...
merci encore
Messages postés
8
Date d'inscription
mercredi 23 août 2006
Statut
Membre
Dernière intervention
23 août 2006

Si vous avez des p'tits exemples...


Chô
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
46
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 
 







<small> Coloration syntaxique automatique [AFCK]</small>

       









 






@+, Julien
Messages postés
8
Date d'inscription
mercredi 23 août 2006
Statut
Membre
Dernière intervention
23 août 2006

Ok, merci. Je pense que cela va m'aider
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
46
> 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

@+, Julien
Messages postés
8
Date d'inscription
mercredi 23 août 2006
Statut
Membre
Dernière intervention
23 août 2006

C'était fait. Merci quand même.