Probleme fonction PoseX

Tank01 Messages postés 106 Date d'inscription lundi 4 août 2003 Statut Membre Dernière intervention 10 novembre 2006 - 18 mai 2006 à 14:43
Tank01 Messages postés 106 Date d'inscription lundi 4 août 2003 Statut Membre Dernière intervention 10 novembre 2006 - 18 mai 2006 à 16:35
bonjour, jai voulu utiliser une fonction Posex, et Pos, ma POS fonctionne mais ma Posex pose un probleme lors de sa compilation!

procedure TForm1.search_ESC(string_to_test,char_to_search:string); //Procédure de recherche de caractère ESC

var i,j:integer;
var sequence_esc:string;

begin

i:=Pos(#27, string_to_test); //on cherche dans string_to_test le #27 (ESC)
if i <>0 then //permet de continuer seulement si il trouve un ESC.
begin
j:=PosEx(#27,string_to_test:string;Offset: Cardinal = i);//cherche un deuxième ESC.
sequence_esc:=Copy(string_to_read;j,(j-i));//copie dans sequence_esc la sequence ESC.

end;

end;

J'ai également éssayé le même model que dans l'aide de Borlan en passant par un const dans la fonction ! Mais à ce stade,le compilateur me dit:"Pas assez de paramètres originaux !"

Si quelqu'un a une idée sur la question !! Merci beaucoup et bonne journée

3 réponses

jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
18 mai 2006 à 15:56
salut pour PosEx il faut rajouter StrUtils dans les uses ensuite ta syntaxe n'et pas bonne:


              j:= PosEx(#27,string_to_test :string
;Offset: Cardinal = i);//cherche un

cela doit être:

              j:=PosEx(#27, string_to_test , i ) ;


@+

jlen
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
18 mai 2006 à 16:00
procedure TForm1.search_ESC(string_to_test,char_to_search:string);
var i,j:integer;
var sequence_esc:string;
begin
   i:=Pos(#27, string_to_test);
   if i <> 0 then begin
      j:=PosEx(#27,string_to_test:string;Offset: Cardinal = i);
      sequence_esc:=Copy(string_to_read;j,(j-i));
   end;
end;

correction :


procedure TForm1.search_ESC(const string_to_test,char_to_search:string);

var i,j:integer;
   
sequence_esc:string;

begin

   i:=Pos(#27, string_to_test);

   if i <> 0 then begin

      j := PosEx(#27,string_to_test,i+1);

      sequence_esc := Copy(string_to_read,(j-i)+1,j);

   end;

end;
0
Tank01 Messages postés 106 Date d'inscription lundi 4 août 2003 Statut Membre Dernière intervention 10 novembre 2006
18 mai 2006 à 16:35
Merci beaucoup pour ta judiscieuse correction, tu est un vrai compilateur à toi tout seule dis donc !!!!

Bonne fin de journée et encore merci pour ton aide.
0
Rejoignez-nous