Les Snippets

Connexion

Remplacer une chaîne (inconnue) placée entre deux chaînes (connues)

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 13/02/2007 23:12:50 et initié par PCPT [Liste]
Date de mise à jour : 17/02/2008 19:42:30
Vue : 6388
Catégorie(s) : Chaîne de caractères
Langages dispo pour ce code :
- VB6, VBA
- Windev
- Delphi 5
- Delphi 5



Langage : VB6 , VBA
Date ajout : 13/02/2007
Posté par PCPT [Liste]
Private Sub ReplaceString(ByRef Expression As String, sLeft As String, sRight As String, sRep As String)
    Dim lPosL As Long, lPosR As Long
    lPosL = InStr(1, Expression, sLeft): lPosR = InStr(lPosL + 1, Expression,  sRight)
    If lPosL > And lPosR > Then Expression = Left$(Expression, lPosL + Len(sLeft) - 1)  & sRep & Mid$(Expression, lPosR)
End Sub
'EXEMPLE  D'UTILISATION
Private Sub Form_Load()
    Dim sStr As String
    sStr = "<div  align='center'>machin</div>"
    Call ReplaceString(sStr, "'>""</""budule")
    MsgBox sStr
    Unload Me
End Sub

Remarque :
ici on veut remplacer "machin" sans le connaître, donc juste entre les balises. pour simplement supprimer il suffit d'indiquer une chaîne vide dans le paramètre sRep
Langage : Windev
Date ajout : 13/04/2007
Posté par Elian Lacroix [Liste]
sTexte est une chaîne = "remplacer le texte entre deux chaines qui servent de marqueurs"
sMarqueDébut est une chaîne = "texte"
sMarqueFin est une chaîne = "qui"
sNouveauTexte est une chaîne = "A LA PLACE"
Info(Remplace(sTexte, ExtraitChaîne(ExtraitChaîne(sTexte,2,sMarqueDébut),1,sMarqueFin), sNouveauTexte))

Langage : Delphi 5
Date ajout : 17/12/2007
Posté par japee [Liste]
DateMAJ : 17/02/2008
function ReplaceMidStr(const S, SLeft, SRight, NewStr: string): string;
var
  PosLeft, PosRight, PosMid: Integer;
  STmp: string;
begin
  Result := S;
  PosLeft := Pos(SLeft, S);
  if PosLeft = 0 then Exit;
  PosMid := PosLeft + Length(SLeft);
  STmp := Copy(S, PosMid, Length(S));
  PosRight := Pos(SRight, STmp);
  if PosRight = 0 then Exit;
  Delete(STmp, 1, PosRight - 1);
  Result := Copy(S, 1, PosMid - 1) + NewStr + STmp;
end;

Remarque :
Mise à jour le 17/02/2008.
Un grand merci à Cirec pour m'avoir signalé un bug sur la version précédente.
Langage : Delphi 5
Date ajout : 17/02/2008
Posté par cirec [Liste]
{Alternative à la fonction de Japee ... jusqu'à deux fois plus rapide} 
Uses StrUtils; {Indispensable pour PosEx} 
Function ReplaceMidStr(Const  S, SLeft, SRight, NewStr: String):  String; 
Var  
  PosLeft, PosRight: Integer; 
Begin  
  PosLeft := Pos(SLeft, S); 
  If  PosLeft < 1 Then  Exit; 
  Inc(PosLeft, Length(SLeft)); 
  PosRight :=  PosEx(SRight, S, PosLeft); 
  If PosRight  < 1 Then Exit;  
  Result := Copy(S, 1, PosLeft-1) + NewStr + Copy(S, PosRight, High(Integer)); 
End; 
 
 

Snippets en rapport avec : Chaine, Remplacer, Inconnue



Codes sources en rapport avec : Chaine, Remplacer, Inconnue

{Javascript / DHTML} REMPLACER UN MOT DANS UNE CHAINE
Bonjour, N'aimant pas travailler avec les expressions régulières sous javascript, voici une fonct...

{PHP} RACCOURCIR UNE CHAINE AVEC UN SÉPARATEUR AU MILIEU
Vous avec une chaine de ce type : J'aime le PHP et j'espère que ma modeste source vous plaira ...

{Visual Basic, VB6, VB.NET, VB 2005} WINSED (RECHERCHER / REMPLACER)
WinSed permet de rechercher et de remplacer une chaine dans plusieurs fichiers....

{ASP / ASP.NET} TROUVER UNE CHAINE ET LA REMPLACER
Trouve str1 dans la chaine s et le remplace par str2 inputs : s, str1, str2 au format string ...

{Flash} MODIFIER LES APOSTROPHES ET AUTRES CARACTÈRES MADE IN WORD DANS FLASH
Bonjour après avoir un peu trop cherché sur les pages de mon navigatuer pour trouver une solution af...

{C / C++ / C++.NET} MYSTRING, CLASSE TRAITANT DES CHAÎNES DE CARACTÈRES
Ceci est une classe tout ce qu'il y'a de plus banal traitant des chaines de caractères. Commentée ai...

{C / C++ / C++.NET} CHAINE EN HEXA (WIN32)
Pour question récurrente sur forum. char* __fastcall bnStrToHex(char *szsrc, char* szdst); retou...

{PHP} OPTIMISATION DE CHAINE POUR RÉÉCRITURE D'URL
Ce code est une petite fonction qui permet d'optimisé une chaine de caractére pour la placer dans un...

{Delphi} DELPHI : PROCEDURE SPLIT SIMILAIRE A LA FONCTION EPONYME EN VB
Découpe une chaîne délimitée en ses éléments pour remplir un tableau dynamique passé en paramètre. U...

{PHP} RENVOI UN DOSSIER DE NOM UNIQUE ET ALÉATOIRE
Petite fonction permettant de renvoyer un dossier disponible de nom aléatoire dans le chemin précisé...