Remplacer un caractère par un autre

Signaler
Messages postés
233
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
26 juin 2011
-
Messages postés
215
Date d'inscription
mardi 29 juillet 2003
Statut
Membre
Dernière intervention
1 septembre 2006
-
boujour! boujour!

alors voila je vous explique mon problème:
j'ai 2 memo, un où l'on entre un texte et l'autre ou le texte aura certain caractère qui auront été remplacés, pour le "remplacement" des lettre, il faudrai qu'il y ai un bouton.

donc l'utilisateur en tre un texte dans un memo appuit sur un bouton et son texte est modifié (certain caractère son remplacés par d'autre)

sa me servirai a coder des messages. :blush)

Merci d'avance.
Jack N.

4 réponses

Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
13
rerehello :D
voici un bout de code d'exemple :

 var
  before, after : string;

begin
  before := 'Salut, tu es sur VBfrance.com';

  after  := StringReplace(before, 'vbfrance', 'DelphiFR',
                          [rfReplaceAll, rfIgnoreCase]);
  ShowMessage('Before = '+before);
  ShowMessage('After  = '+after);
end;

je cree 2 var string pour l'exemple, une avec l'ancienne phrase, et after va se faire remplacer les 'vbfrance' par des 'Delphifr'. j'ai mis rfReplaceAll pour qu'il remplace TOUTES les occurences du mot 'vbfrance' et j'ai mis rfIgnoreCase pour qu'il ignore la casse (MAJ/min).

N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient ! ;)

-------------------------------------------
Messages postés
436
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
5 février 2015

exemple changer tous les "A" par des "B" :
memo2.text:=stringreplace(memo1.text,'A','B',[rfReplaceAll]);


remarque on peut changer des parties strings par des strings, par exemple tu remplace "avec" par "sans" :
memo2.text:=stringreplace(memo1.text,'avec','sans',[rfReplaceAll]);

DrJerome
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
13
mmm je viens de ton autre post ou tu me dis ke tu debutes, alors voila pour faire ce code sur toutes les lignes de ton memo :

procedure Modif;
var
 i: integer;
begin
memo2.clear; // j'efface le memo qui va recevoir le contenu du premier memo avec les caracteres remplaces
memo2.lines := memo1.lines; // je copie le contenu du memo1 ds le memo2
 for i:=0 to memo2.lines.count-1 do  // je fais une boucle sur chak ligne du memo2
 begin
  StringReplace(memo2.lines[i], 'truc', 'machin',[rfReplaceAll, [fIgnoreCase]);
  StringReplace(memo2.lines[i], '123', '999',[rfReplaceAll, [fIgnoreCase]);
 end;
end;


c mieux ?

N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient ! ;)

-------------------------------------------
Messages postés
215
Date d'inscription
mardi 29 juillet 2003
Statut
Membre
Dernière intervention
1 septembre 2006

Tu peux utiliser Memo2.Text à la place de boucler sur toutes les lignes.De plus StringReplace renvoit la chaine modifiée.

Memo2.text := StringReplace(Memo1.Text,...,..,...,...);


devrait suffire sans avoir à recopier les lignes du Memo1 avant.

j!nH