a = '12......34...56...6..5.' DO WHILE !EMPTY(OCCURS('..',a)) a=STRTRAN(a,'..','.') ENDDO &&!EMPTY(OCCURS('..',a)) ?abut I search for something without loop.
> >a = '12...34...56...' >? StringSearchAndReplace(a, '..', '.') > >*------------------------------------------------------------------------------- >function StringSearchAndReplace(Searched, SearchFor, ReplaceWith, IgnoreCase) > > local i, Offset, SearchForLength, ReplaceWithLength > > SearchForLength = len(SearchFor) > ReplaceWithLength = len(ReplaceWith) > Offset = 1 > > do case > case IgnoreCase > i = atc(SearchFor, substr(Searched, Offset)) > do while !empty(i) > i = i + Offset - 1 > Searched = stuff(Searched, i, SearchForLength, ReplaceWith) > Offset = Offset + ReplaceWithLength > i = atc(SearchFor, substr(Searched, Offset)) > enddo > otherwise > i = at(SearchFor, substr(Searched, Offset)) > do while !empty(i) > i = i + Offset - 1 > Searched = stuff(Searched, i, SearchForLength, ReplaceWith) > Offset = Offset + ReplaceWithLength > i = at(SearchFor, substr(Searched, Offset)) > enddo > endcase > > return Searched >endfunc >*-------------------------------------------------------------------------- >