Hi Gabriele,

> RPT>     if all [any-string? target any [not any-string? :search tag?
:search]]
> RPT> [search: form :search]
>
> Does this work? You have 'ALL as a local word...

Does not work. I forgot system/words/, i try also to remove the if (but i'm
not sure that the efinal evaluation of the search value does not make fail the
block of all in some cases)

    system/words/all [any-string? target any [not any-string? :search tag?
:search] search: form :search]

> BTW,  for  a  long string copying to a new string will probably be
> faster  than  changing the original (unless you're not moving data
> around   at   all,  i.e.  when  SEARCH  has  the  same  length  as
> REPLACE...).

I fear that memory can become a problem with very long series! and additional
test on the lenghts could slow the function, i think.

----- new version ----
replace: func [
    {Replaces the search value with the replace value within the target
series. Changed by ana}
    target [series!] "Series that is being modified."
    search "Value to be replaced."
    replace "Value to replace with."
    /all "Replace all occurrences."
    /case "Case-sensitive replacement."
    /local start end rule
][
    rule: [to search start: search end: opt (end: change/part start replace
end) :end]
    system/words/all [any-string? target any [not any-string? :search tag?
:search] search: form :search]
    if all [rule: reduce ['some rule]]
    either case [parse/all/case target rule][parse/all target rule]
    target
]

---
Ciao
Romano


-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.

Reply via email to