mozilla
Your Search Results

    NS_StringSetDataRange

    « XPCOM API Reference

    Summary

    The NS_StringSetDataRange function copies data into a section of the string's internal buffer. This is a low-level API.

      #include "nsStringAPI.h"
    
      nsresult NS_StringSetDataRange(
        nsAString& aString,
        PRUint32 aCutStart,
        PRUint32 aCutLength,
        const PRUnichar* aData,
        PRUint32 aDataLength = PR_UINT32_MAX
      );
    

    Parameters

    aString
    [in] A nsAString instance to modify.
    aCutStart
    [in] The starting index of the section to replace, measured in storage units.
    aCutLength
    [in] The length of the section to replace, measured in storage units.
    aData
    [in] A raw character array to copy into this string.
    aDataLength
    [in] The length of aData, measured in storage units. If equal to PR_UINT32_MAX, then aData is assumed to be null-terminated. Otherwise, aData need not be null terminated.

    Return Values

    The NS_StringSetDataRange function returns NS_OK if successful. Otherwise, it returns an error code.

    Example Code

      // Replace all occurances of |matchVal| with |newVal|
    
      void ReplaceSubstring(nsAString& str,
                            const nsAString& matchVal,
                            const nsAString& newVal)
      {
        const PRUnichar* sp, *mp, *np;
        PRUint32 sl, ml, nl;
     
        sl = NS_StringGetData(str, &sp);
        ml = NS_StringGetData(matchVal, &mp);
        nl = NS_StringGetData(newVal, &np);
     
        for (const PRUnichar* iter = sp; iter <= sp + sl - ml; ++iter)
        {
          if (memcmp(iter, mp, ml) == 0)
          {
            PRUint32 offset = iter - sp;
     
            NS_StringSetDataRange(str, offset, ml, np, nl);
     
            sl = NS_StringGetData(str, &sp);
     
            iter = sp + offset + nl - 1;
          }
        }
      }
    

    History

    This function was frozen for Mozilla 1.7. See bug 239123 for details.

    See Also

    nsAString

    Document Tags and Contributors

    Contributors to this page: Pmash, Sheppy
    Last updated by: Sheppy,