Previous | Contents | Next

C.1 Get parent directory

 ; GetParent

 ; input, top of stack  (e.g. C:\Program Files\Poop)

 ; output, top of stack (replaces, with e.g. C:\Program Files)

 ; modifies no other variables.

 ;

 ; Usage:

 ;   Push "C:\Program Files\Directory\Whatever"

 ;   Call GetParent

 ;   Pop $R0

 ;   ; at this point $R0 will equal "C:\Program Files\Directory"



 Function GetParent

 

   Exch $R0

   Push $R1

   Push $R2

   Push $R3

   

   StrCpy $R1 0

   StrLen $R2 $R0

   

   loop:

     IntOp $R1 $R1 + 1

     IntCmp $R1 $R2 get 0 get

     StrCpy $R3 $R0 1 -$R1

     StrCmp $R3 "\" get

     Goto loop

   

   get:

     StrCpy $R0 $R0 -$R1

     

     Pop $R3

     Pop $R2

     Pop $R1

     Exch $R0

     

 FunctionEnd

Previous | Contents | Next