Remplacer une chaîne par une autre dans un fichier


Contenu du snippet

Private Function ChangeWords(sWordsToRemove As String, sWordsToChange As String, sFile As String) As Boolean 
    If Dir(sFile, vbSystem Or vbHidden) = vbNullString Then 
'       fichier existe?
        ChangeWords = False 
    Else 
'       ouvre le fichier
        Dim FF As Integer, sBuffer As String 
        FF = FreeFile 
        Open sFile For Input As #FF 
            sBuffer = Input(LOF(FF), 1) 
        Close #FF 
'       ligne à changer existe?
        Dim lPos As Long 
        lPos = InStr(1, sBuffer, sWordsToRemove) 
        If lPos = 0 Then 
            ChangeWords = False 
        Else 
'           on découpe
            Dim sFirst As String, sLast As String 
            sFirst = Left$(sBuffer, lPos - 1) 
            sLast = Right$(sBuffer, Len(sBuffer) - lPos - Len(sWordsToRemove) + 1) 
'           on écrit
            FF = FreeFile 
            Open sFile For Output As #FF 
                Print #FF, sFirst & sWordsToChange & sLast 
            Close #FF 
            ChangeWords = True 
        End If 
    End If 
End Function

Compatibilité : VB6, VBA

Disponible dans d'autres langages :

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.