|
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
|