MàJ Fichier

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

12 réponses

boufcai Messages postés 8 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 23 août 2006
23 août 2006 à 17:46
C'est bon j'ai fais ce que je voulais.


Un grand merci à jrivet et MPi.
Chô chô
3
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
23 août 2006 à 14:16
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
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
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:

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

@+, Julien
0
boufcai Messages postés 8 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 23 août 2006
23 août 2006 à 14:30
Halo halo,


il s'agit d'un fichier texte.


Je vois deja ce que je faire avec les infos


Merci
0

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

Posez votre question
boufcai Messages postés 8 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 23 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
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
23 août 2006 à 14:35
Fais toi un petit Bout de code qui Ecrit [Valeurs] Dans le debut de chaque fichier.
et ensuite utilise WritePrivateProfileString
@+, Julien
0
boufcai Messages postés 8 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 23 août 2006
23 août 2006 à 14:40
Ok j'essaye...
merci encore
0
boufcai Messages postés 8 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 23 août 2006
23 août 2006 à 14:44
Si vous avez des p'tits exemples...


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







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

       









 






@+, Julien
0
boufcai Messages postés 8 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 23 août 2006
23 août 2006 à 15:09
Ok, merci. Je pense que cela va m'aider
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
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

@+, Julien
0
boufcai Messages postés 8 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 23 août 2006
23 août 2006 à 15:19
C'était fait. Merci quand même.
0
Rejoignez-nous