Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- alias -l parserange {
- var %input $1
- var %maxRange $2
- var %startNumber
- var %endNumber
- ;if the first character is a -, the first parameter is a negative number; proceed to second - or end of the string
- var %flag $iif($left(%input,1) == -,$true,$false)
- var %b $token(%input,1,45)
- var %input $iif(%flag,$right(%input,-1),%input)
- var %a $pos(%input,-,1)
- if %a == $len(%input) {
- ;second - as at end of string (range encountered) no second integer
- %startNumber = $iif(%flag,$calc(%maxRange - %b + 1),%b)
- %endNumber = %maxRange
- }
- else if !%a {
- ;no - after the first token; no range
- %startNumber = $iif(%flag,$calc(%maxRange - %b + 1),%b)
- %endNumber = %startNumber
- }
- else {
- ;range encountered; second number present
- var %startNumber $iif(%flag,$calc(%maxRange - %b + 1),%b)
- ;proceed to first - or end of string, and if there is a positive or negative integer
- var %a $iif($Pos(%input,-,1),$v1,0)
- var %b $iif($pos(%input,-,2),$v1,0)
- if %b > 0 && $calc(%b - %a) == 1 {
- ;second integer is negative,
- var %endNumber $calc(%maxRange - $token(%input,2,45) + 1)
- }
- else if %b == 0 {
- ;second integer is positive
- var %endnumber $token(%input,2,45)
- }
- else {
- ;unknown condition
- var %endnumber $token(%input,2,45)
- }
- }
- return %startNumber %endNumber
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement