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

shell13010 73 Messages postés mardi 3 avril 2007Date d'inscription 12 mai 2013 Dernière intervention - 1 avril 2009 à 20:33 - Dernière réponse : shell13010 73 Messages postés mardi 3 avril 2007Date d'inscription 12 mai 2013 Dernière intervention
- 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
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 2 avril 2009 à 00:17
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%" />

Merci f0xi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Commenter la réponse de f0xi
Meilleure réponse
shell13010 73 Messages postés mardi 3 avril 2007Date d'inscription 12 mai 2013 Dernière intervention - 2 avril 2009 à 07:16
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..

Merci shell13010 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Commenter la réponse de shell13010
Nicolas___ 1039 Messages postés jeudi 2 novembre 2000Date d'inscription 24 avril 2013 Dernière intervention - 1 avril 2009 à 20:43
Commenter la réponse de Nicolas___
shell13010 73 Messages postés mardi 3 avril 2007Date d'inscription 12 mai 2013 Dernière intervention - 1 avril 2009 à 21:57
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
shell13010 73 Messages postés mardi 3 avril 2007Date d'inscription 12 mai 2013 Dernière intervention - 1 avril 2009 à 22:05
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
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 2 avril 2009 à 00:10
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
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 2 avril 2009 à 09:42
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
shell13010 73 Messages postés mardi 3 avril 2007Date d'inscription 12 mai 2013 Dernière intervention - 2 avril 2009 à 13:12
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.