Get last directory path part: Difference between revisions
From NSIS Wiki
Jump to navigationJump to search
m (Adding new author and category links.) |
|||
Line 23: | Line 23: | ||
== The Function == | == The Function == | ||
<highlight-nsis> | <highlight-nsis> | ||
Function | Function GetAfterChar | ||
Exch $0 ; | Exch $0 ; chop char | ||
Exch | |||
Exch $1 ; input string | |||
Push $2 | Push $2 | ||
StrCpy $ | Push $3 | ||
StrCpy $2 0 | |||
loop: | loop: | ||
IntOp $ | IntOp $2 $2 - 1 | ||
StrCpy $ | StrCpy $3 $1 1 $2 | ||
StrCmp $ | StrCmp $3 "" 0 +3 | ||
StrCmp $ | StrCpy $0 "" | ||
Goto exit2 | |||
StrCmp $3 $0 exit1 | |||
Goto loop | Goto loop | ||
exit1: | exit1: | ||
IntOp $ | IntOp $2 $2 + 1 | ||
StrCpy $0 $ | StrCpy $0 $1 "" $2 | ||
exit2: | exit2: | ||
Pop $3 | |||
Pop $2 | Pop $2 | ||
Pop $1 | Pop $1 | ||
Exch $0 | Exch $0 ; output | ||
FunctionEnd | FunctionEnd | ||
</highlight-nsis> | </highlight-nsis> | ||
Original written by [[user:kichik|KiCHiK]] (GetFileName) | |||
Modified for character input by me (GetAfterChar). | |||
(I also wrote a similar script, but this one is better) | (I also wrote a similar script, but this one is better) | ||
- | -Stu | ||
[[Category:Disk, Path & File Functions]] | [[Category:Disk, Path & File Functions]] |
Revision as of 11:25, 7 September 2005
Author: Afrow UK (talk, contrib) |
Description
This script will get the last part of a directory path.
Usage
Push "C:\program files\geoffrey\files" Call GetFileName Pop $R0
$R0 is now "files"
You can also use this function to get the file extension of an entered file path. In the function replace...
- StrCmp $2 "\" exit
...with
- StrCmp $2 "." exit
The file extension (after the ".") will then be popped off the stack.
The Function
Function GetAfterChar Exch $0 ; chop char Exch Exch $1 ; input string Push $2 Push $3 StrCpy $2 0 loop: IntOp $2 $2 - 1 StrCpy $3 $1 1 $2 StrCmp $3 "" 0 +3 StrCpy $0 "" Goto exit2 StrCmp $3 $0 exit1 Goto loop exit1: IntOp $2 $2 + 1 StrCpy $0 $1 "" $2 exit2: Pop $3 Pop $2 Pop $1 Exch $0 ; output FunctionEnd
Original written by KiCHiK (GetFileName) Modified for character input by me (GetAfterChar).
(I also wrote a similar script, but this one is better)
-Stu