Précédent | Sommaire | Suivant

C.4 Rechercher dans une chaîne

 ; StrStr
 ; entrée, haut de la pile = chaine a rechercher
 ;         haut de la pile-1 = chaine dans laquelle chercher
 ; sortie, haut de la pile (remplacement avec la portion de la chaine restante)
 ; ne modifie aucune autre variable.
 ;
 ; Usage:
 ;   Push "c'est une putain de longue chaine"
 ;   Push "putain"
 ;   Call StrStr
 ;   Pop $R0
 ;  ($R0 at this point is "putain de longue chaine")

 Function StrStr
 Exch $R1 ; st=tete,vieux$R1, $R1=pointeur
   Exch   ; st=vieux$R1,tete
   Exch $R2 ; st=vieux$R1,vieux$R2, $R2=tete
   Push $R3
   Push $R4
   Push $R5
   StrLen $R3 $R1
   StrCpy $R4 0
   ; $R1=pointeur
   ; $R2=tete
   ; $R3=taille(pointeur)
   ; $R4=cnt
   ; $R5=tmp
   loop:
     StrCpy $R5 $R2 $R3 $R4
     StrCmp $R5 $R1 done
     StrCmp $R5 "" done
     IntOp $R4 $R4 + 1
     Goto loop
 done:
   StrCpy $R1 $R2 "" $R4
   Pop $R5
   Pop $R4
   Pop $R3
   Pop $R2
   Exch $R1
 FunctionEnd

Précédent | Sommaire | Suivant


A propos | Contacts | Publicité | Info légales | © Todae 2006-2008

Sites partenaires : discount | avis rémunérés| sorties DVD | Winamp