Recuperer se qu'il y a entre... [Résolu]

Messages postés
73
Date d'inscription
mardi 3 avril 2007
Dernière intervention
12 mai 2013
- - Dernière réponse : shell13010
Messages postés
73
Date d'inscription
mardi 3 avril 2007
Dernière intervention
12 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.

voila en esperant avoir etais comprehensible..

merci pour votre aide...

Cordialement..
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
4307
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
2 janvier 2019
34
3
Merci
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;












<hr size="2" width="100%" />

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 123 internautes nous ont dit merci ce mois-ci

Commenter la réponse de f0xi
Messages postés
73
Date d'inscription
mardi 3 avril 2007
Dernière intervention
12 mai 2013
3
Merci
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;

merci encore..

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 123 internautes nous ont dit merci ce mois-ci

Commenter la réponse de shell13010
Messages postés
1039
Date d'inscription
jeudi 2 novembre 2000
Dernière intervention
24 avril 2013
2
Commenter la réponse de Nicolas___
Messages postés
73
Date d'inscription
mardi 3 avril 2007
Dernière intervention
12 mai 2013
0
Merci
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?

merci d'avance pour ta reponse .
Commenter la réponse de shell13010
Messages postés
73
Date d'inscription
mardi 3 avril 2007
Dernière intervention
12 mai 2013
0
Merci
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';
Commenter la réponse de shell13010
Messages postés
4307
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
2 janvier 2019
34
0
Merci
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

<hr size="2" width="100%" />
Commenter la réponse de f0xi
Messages postés
4307
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
2 janvier 2019
34
0
Merci
ouai, désolé, pour une raison que j'ignore, la declaration function a disparue lors du copier coller ...

<hr size="2" width="100%" />
Commenter la réponse de f0xi
Messages postés
73
Date d'inscription
mardi 3 avril 2007
Dernière intervention
12 mai 2013
0
Merci
merci pas de souci, ,sa incite les gens a comprendre le code
Commenter la réponse de shell13010

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.