shell13010
Messages postés73Date d'inscriptionmardi 3 avril 2007StatutMembreDernière intervention12 mai 2013
-
1 avril 2009 à 20:33
shell13010
Messages postés73Date d'inscriptionmardi 3 avril 2007StatutMembreDernière intervention12 mai 2013
-
2 avril 2009 à 13:12
Bonsoir a tous ,
j'aurais aimer savoir comment recuperer un mot dans un richedit?
il y a par exemple jjj_ici_le_mot_jjj comme vous l'avez compris c'est entre jjj...jjj que j'aimerais récuperer le mot.
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 2 avril 2009 à 00:17
uses StrUtils;
function GetStrPart(const Str, Delimiter: String; const Index: cardinal = 1): String;
var I,P1,P2 : integer;
begin
Result := '';
if (posex(Delimiter,Str[1]) = 1) and (Index <= 1) then exit;
P1 := 1;
for I := 1 to Index-1 do begin
P1 := posex(Delimiter, Str, P1);
if P1 = 0 then exit
else P1 := P1 + length(Delimiter);
end;
P2 := posex(Delimiter, Str, P1);
if P2 = 0 then P2 := length(Str) + 1;
Result := copy(Str, P1, P2 - P1);
end;
shell13010
Messages postés73Date d'inscriptionmardi 3 avril 2007StatutMembreDernière intervention12 mai 20131 2 avril 2009 à 07:16
f0xy merci 1000 fois le code marche tres bien j'ai rechercher et j'ai trouver un poste ou tu donner un exemple
pour sa a qui sa interesserais avec la recherche en direct dans le richedit
function GetStrPart(const Str, Delimiter: String; const Index: cardinal = 1): String;
var I,P1,P2 : integer;
begin
Result := '';
if (posex(Delimiter,Str[1]) = 1) and (Index <= 1) then exit;
P1 := 1;
for I := 1 to Index-1 do begin
P1 := posex(Delimiter, Str, P1);
if P1 = 0 then exit
else P1 := P1 + length(Delimiter);
end;
P2 := posex(Delimiter, Str, P1);
if P2 = 0 then P2 := length(Str) + 1;
Result := copy(Str, P1, P2 - P1);
end;
procedure TForm2.Button4Click(Sender: TObject);
begin
edit8.Text:=GetStrPart(richedit1.text, 'jjj', 2); //recherche dans le richedit tout se qui commence par jjj et renvoie le resultat dans un Tedit,il recupere se qu'il y a entre jjj
end;
shell13010
Messages postés73Date d'inscriptionmardi 3 avril 2007StatutMembreDernière intervention12 mai 20131 1 avril 2009 à 21:57
salut et merci pour ton aide..
ou c'est a peut pres se que je cherche mais le probleme reside que j'aimerais recuperer se qu'il y a entre les jjj...jjj mais que le mot peut etre aleatoire
en gros si je fait avec le code que tu as citer sur le lien bien il me recuperera que les 3 premier jjj aurez tu une autre idée?
shell13010
Messages postés73Date d'inscriptionmardi 3 avril 2007StatutMembreDernière intervention12 mai 20131 1 avril 2009 à 22:05
en revoyant le code j'ai essayer de rajouter
begin
SChaine := 'jjj'+' '+'jjj'; //j'ai essayer comme ceci mais c'est pas bon
IdX := Pos(AnsiLowerCase(SChaine), AnsiLowerCase(Chaine));
If Idx > 0 Then
Label9.Caption := Copy(Chaine, Idx, Length(SChaine))
Else
Label9.Caption := 'sous-chaine ' + SChaine + ' non trouvée';
Vous n’avez pas trouvé la réponse que vous recherchez ?
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 2 avril 2009 à 00:10
cherche aprés ma fonction GetStrPart sur codyx ou dans mes sources, elle est prevue exactement pour ce genre de choses.
S := GetStrPart('jjj', 1); renvois ce qu'il y a avant
S := GetStrPart('jjj', 2); renvois ce qu'il y a entre
S := GetStrPart('jjj', 3); renvois ce qu'il y a aprés