Gabriele Santilli napsal(a):

>Hi Gregg,
>
>On Tuesday, January 18, 2005, 9:02:32 PM, you wrote:
>
>GI>     find-Nth: func [
>GI>         "Returns the series at occurrence N of value or none."
>GI>         series [series!]
>GI>         value
>GI>         n      [integer!]
>GI>         /local count pos
>GI>     ][
>GI>         count: 0
>GI>         parse series [
>GI>             some [
>GI>                 to value pos: (
>GI>                    count: count + 1
>GI>                    if count = n [return pos]
>GI>                 ) skip
>GI>             ]
>GI>         ]
>GI>         none
>GI>     ]
>
>  
>
...

>  find-nth: func [
>      "Returns the series at occurrence N of value or none."
>      series [series!]
>      value
>      n      [integer!]
>
>      /local pos
>  ] [
>      if n = 1 [return find series :value]
>      n: n - 1
>      parse series [
>          n thru value to value pos:
>      ]
>      pos
>  ]
>  
>
...

another option:

    find-nth: func [
        "Returns the series at occurrence N of value or none."
        series [series!]
        value
        n [integer!]
        /local pos
    ] [
        parse series [n [to value pos: value] to end]
        pos
    ]

>If the value is just a character, you can simplify things out:
>
>  find-nth: func [
>      "Returns the series at occurrence N of value or none."
>      series [any-string!]
>      value  [char!]
>      n      [integer!]
>
>      /local pos
>  ] [
>      parse series [
>          n thru value pos: (pos: back pos)
>      ]
>      pos
>  ]
>
>Regards,
>   Gabriele.
>  
>
-L
-- 
To unsubscribe from the list, just send an email to rebol-request
at rebol.com with unsubscribe as the subject.

Reply via email to