I have a path entered by the user which may be:
C:\quake2\baseq2\maps\gbrdday1.map
How can I get the gbrdday1.map bit.
Note that it could be anything, not at all gbrdday1.map
Basicly, the bit after the last \ is what I want.
-Stuart
Need to get the last bit of a string
4 posts
You can tweak GetParent to do the trick. And if you don't want to handle the code too much you can get the length of the returned string and trim up to that point using StrCpy with a negative maxlen.
Here is the script:
I'm not sure how to return it to Exch, Pop and Pushing the variables around, so I've left it as this.
KiCHiK, please show me what the basec Pop, Push and Exch cmds should be.
Usage:
StrCpy $R0 C:\Geoffrey\Freddy
Call GetFileName
DetailPrint $R3 # $R3 is now Freddy
-Stuart
I'm not sure how to return it to Exch, Pop and Pushing the variables around, so I've left it as this.
KiCHiK, please show me what the basec Pop, Push and Exch cmds should be.
Usage:
StrCpy $R0 C:\Geoffrey\Freddy
Call GetFileName
DetailPrint $R3 # $R3 is now Freddy
Thanks
Function GetFileName
StrCpy $R1 -1
loop:
StrCmp $0 1 +2
IntOp $0 $0 + 1
StrCpy $R2 $R0 1 $R1
StrCmp $R2 "" exit
StrCmp $R2 "\" exit
StrCpy $R3 $R2$R3
IntOp $R1 $R1 - 1
Goto loop
exit:
FunctionEnd
-Stuart
Haven't tested it but it should work:
Function GetFileName
Exch $0 ; input string
Push $1
Push $2
StrCpy $1 0
loop:
IntOp $1 $1 - 1
StrCpy $2 $0 1 $1
StrCmp $2 "" exit_dec
StrCmp $2 "\" exit
Goto loop
exit_dec:
IntOp $1 $1 - 1
exit:
IntOp $1 $1 + 1
StrCpy $0 $0 "" $1
Pop $2
Pop $1
Exch $0
FunctionEnd