[Libreoffice] Easy Hack String replacement: SearchAndReplace

Neil Leathers neil.r.leathers at gmail.com
Tue Sep 27 14:55:30 PDT 2011


> On Mon, 2011-09-26 at 09:43 +0200, Stephan Bergmann wrote:
> > On 09/26/2011 01:30 AM, Neil Leathers wrote: > I was looking into the
> >  Easy Hacks: "Removal/Replacement of the String/UniString/ByteString
> >  with OUString/OString once and for all" and ran into needing to
> >  translate a SearchAndReplaceAscii. Before launching into this set I
> > wanted to confirm that instead of moving the SearchAndReplace
> > functions to OUString and OString they should be moved to
> > OUStringBuffer and OStringBuffer?
> > 
> > It would probably be better placed at OUString (where it returns a 
> > new OUString instance, leaving the original intact) than at 
> > OUStringBuffer (where it modifies this instance).
> 
> See if comphelper::string::replace fits your needs, i.e. include
> comphelper/string.hxx, it takes string to operate on, search string,
> replace string and returns a new string. Where string is an OUString or
> OString.
> 
> comphelper/qa/string/test_string.cxx is the unit test for  it, i.e.
> TestString::testReplace if anyone wants to put any potential gotchas
> through it.

This seems to work fine. I guess http://wiki.documentfoundation.org/Development/String_Classes should be updated?

The table lists the following:
xub_StrLen SearchAndReplace( sal_Unicode c, sal_Unicode cRep, xub_StrLen nIndex = 0 );
xub_StrLen SearchAndReplace( const UniString& rStr, const UniString& rRepStr, xub_StrLen nIndex = 0 );
xub_StrLen SearchAndReplace( const sal_Unicode* pCharStr, const UniString& rRepStr, xub_StrLen nIndex = 0 );
xub_StrLen SearchAndReplaceAscii( const sal_Char* pAsciiStr, const UniString& rRepStr, xub_StrLen nIndex = 0 );
void SearchAndReplaceAll( sal_Unicode c, sal_Unicode cRep );
void SearchAndReplaceAll( const UniString& rStr, const UniString& rRepStr );
void SearchAndReplaceAll( const sal_Unicode* pCharStr, const UniString& rRepStr );
void SearchAndReplaceAllAscii( const sal_Char* pAsciiStr, const UniString& rRepStr );

Neil Leathers


More information about the LibreOffice mailing list