Get last directory path part: Difference between revisions
From NSIS Wiki
Jump to navigationJump to search
(2 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
== Description == | == Description == | ||
This script will get the last part of a directory | This script will get the last part of a string after a specified character. Useful to get file extensions, last file name or last directory part. | ||
== Usage == | == Usage == | ||
<highlight-nsis> | <highlight-nsis> | ||
Push "C:\program files\geoffrey\files" | Push "C:\program files\geoffrey\files" | ||
Call | Push "\" | ||
Call GetAfterChar | |||
Pop $R0 | Pop $R0 | ||
</highlight-nsis> | </highlight-nsis> | ||
$R0 is now "files" | $R0 is now "files" | ||
Push "." instead of "\" to get a file extension or perhaps "/" for URL. | |||
The return value is empty "" if the input char was not found. | |||
The | |||
== The Function == | == The Function == |
Latest revision as of 11:28, 7 September 2005
Author: Afrow UK (talk, contrib) |
Description
This script will get the last part of a string after a specified character. Useful to get file extensions, last file name or last directory part.
Usage
Push "C:\program files\geoffrey\files" Push "\" Call GetAfterChar Pop $R0
$R0 is now "files" Push "." instead of "\" to get a file extension or perhaps "/" for URL.
The return value is empty "" if the input char was not found.
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