Les Snippets

Connexion

Replace de masse, remplacer des chaînes par d'autres en une seule opération

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 06/02/2007 20:42:27 et initié par PCPT [Liste]
Date de mise à jour : 15/02/2007 17:07:57
Vue : 5851
Catégorie(s) : Chaîne de caractères
Langages dispo pour ce code :
- VB6, VBA
- VB 2005
- Voir tous les langages pour ce code snippet



Langage : VB6 , VBA
Date ajout : 06/02/2007
Posté par PCPT [Liste]
DateMAJ : 15/02/2007
Function MultiReplace(ByVal Expression As String, aFind() As String, aReplace() As String) As String
    Dim i&, lPos&, UboundReplace%, sBuffer$
'   tableaux dimentionnés?
    If (Not (Not aFind)) = Then MultiReplace = Expression: Exit  Function
    If (Not (Not aReplace)) = Then UboundReplace = -1 Else UboundReplace = UBound(aReplace)
'   chaque élément du  tableau à chercher
    If UboundReplace = -1 Then
        For i = LBound(aFind) To UBound(aFind)
            Call MonoReplace(Expression, aFind(i),  vbNullString)
        Next i
    ElseIf UboundReplace >= UBound(aFind) Then
        For i = LBound(aFind) To UBound(aFind)
            Call MonoReplace(Expression, aFind(i),  aReplace(i))
        Next i
    Else
        For i = LBound(aFind) To UBound(aFind)
            Call MonoReplace(Expression, aFind(i),  aReplace(UBound(aReplace)))
        Next i
    End If
    MultiReplace = Expression
End Function
Sub MonoReplace(ByRef Expression As String, sFind As String, sReplace As String)
    Dim lPos&
    Do
        lPos = InStr(1, Expression, sFind)
        If lPos > Then Expression = Left$(Expression, lPos - 1) & sReplace & Right$(Expression, Len(Expression) - lPos - Len(sFind) + 1)
    Loop Until lPos = 0
End Sub

'    EXEMPLE  D'UTILISATION
Private Sub Form_Load()
    Const TOTREAT As String "Dans le pays  %%countryselected,  '%%pseudo' a déclaré la guerre ce %%date à %%time (en  %%countryselected) avec  son arme favorite : %%extraweapon."
    Dim aArgs(4As String, aStr1(4As String, aStr2(0) As  String
    
    aArgs(0) = "%%countryselected"
    aArgs(1) = "%%pseudo"
    aArgs(2) = "%%date"
    aArgs(3) = "%%time"
    aArgs(4) = "%%extraweapon"
    aStr1(0) = "France"
    aStr1(1) = "piti Codyx"
    aStr1(2) = Format$(Date"DDDD DD MMM YYYY")
    aStr1(3) = CStr(Time)
    aStr1(4) = "la bible de Visual Basic ;  bien  lourde mais relativement digeste"
    
    aStr2(0) = "générique"
    MsgBox TOTREAT & vbCrLf & vbCrLf & MultiReplace(TOTREAT,  aArgs, aStr1)
    MsgBox TOTREAT & vbCrLf & vbCrLf & MultiReplace(TOTREAT,  aArgs, aStr2)
End Sub


Snippets en rapport avec : Caractères, Chaîne, Instr, Replace



Codes sources en rapport avec : Caractères, Chaîne, Instr, Replace

{PHP} GÉNÉRER UNE CHAÎNE ALÉATOIRE SANS BOUCLE NI CRYPTAGE (MD5 OU AUTRE)
Jusqu'à présent tous les générateurs de clé que j'ai trouvé utilisait une boucle ou les fonction sha...

{PHP} FORMATAGE AUTOMATIQUE D'UN TEXT EN FONCTION DE MOTS CLÉES
Je cherchais depuis quelque temps un script me permettant de souligner, ou mettre en gras certain mo...

{Visual Basic, VB6, VB.NET, VB 2005} FONCTION AVANCEES DE RECHERCHE ET D'EXTRACTION DE TEXTE.
Description _________________ Ce module vous fournit des fonctions avancees de recherche et de remp...

{PHP} REMPLACER UN CARACTÉRE DANS UN CHAINE
Une petite fonction toute simple pour remplacer une partie d'un texte par autre chose. Exemple : P...

{C / C++ / C++.NET} NSTRING (UPDATE) VERSION 1.5
Yep! Encore une mise à jour de ma class NString, ajouts, modifications, suppressions, ... de pleins ...

{C / C++ / C++.NET} LES FONCTIONS TRIM, RTRIM ET LTRIM DE VB EN C++ ( CHAINE DE CARACTÈRE )
Il n'y à pas grand chose à dire... c'est seulement pour enlever les espaces à la droite(RTrim), à la...

{C / C++ / C++.NET} UPPOINTCHAR ( CHAINE DE CARACTÈRE )
Je vais essayer d'expliquer le mieux possible :) Prennez par exemple cette chaine ->"Salut. ca va...

{C / C++ / C++.NET} INVERSESTRING ( CHAINE DE CARACTÈRE )
Simple code pour inverser une chaine du genre-> Salut ca va bien Deviendras: neib av ac tul...

{Visual Basic, VB6, VB.NET, VB 2005} CHANGER TOUS LES CARACTÈRES D'UNE CHAINE PAR UN AUTRE CARACTÈRE
Il s'agit simplement de changer un chaine ou un caratère répété dans une chaine par une autre chain...

{Visual Basic, VB6, VB.NET, VB 2005} RECUPÉRTAION D'UNE CHAÎNE DE CARACTÈRES DANS UNE AUTRE
L'argument position permet de donner une position de départ pour la recherche...