Insert (Stringlist function): Difference between revisions

From m204wiki
Jump to navigation Jump to search
m (1 revision)
m (syntax digram, tags and links)
Line 1: Line 1:
{{Template:Stringlist:Insert subtitle}}
{{Template:Stringlist:Insert subtitle}}


This callable method inserts a string into a <var>Stringlist</var>.
This callable method inserts a string into a <var>Stringlist</var> at a specific location.


==Syntax==
==Syntax==
Line 7: Line 7:
===Syntax terms===
===Syntax terms===
<table class="syntaxTable">
<table class="syntaxTable">
<tr><th>%rc</th>
<tr><th>%count</th>
<td>A numeric variable to contain the number of items in '''%sl''' after the string has been inserted. </td></tr>
<td>A numeric variable to contain the number of items in <var class="term">sl</var> after the string has been inserted. </td></tr>
<tr><th>sl</th>
<tr><th>sl</th>
<td>A <var>Stringlist</var> object. </td></tr>
<td>A <var>Stringlist</var> object. </td></tr>
<tr><th>itemnum</th>
<tr><th>itemnum</th>
<td>The item number before which the string is to be inserted. If '''itemnum''' is equal to the number of items in the <var>Stringlist</var> plus one, '''string''' is added to the end of the <var>Stringlist</var> (the same effect as an Add invocation). Because the string is inserted before the indicated item number, '''itemnum''' is also the item number of the new <var>Stringlist</var> item after <var>Insert</var> returns. </td></tr>
<td>The item number before which the string is to be inserted. If <var class="term">itemnum</var> is equal to the number of items in the <var>Stringlist</var> plus one, <var class="term">string</var> is added to the end of the <var>Stringlist</var> (the same effect as an <var>[[Add (Stringlist function)|Add]]</var> invocation). Because the string is inserted before the indicated item number, <var class="term">itemnum</var> is also the item number of the new <var>Stringlist</var> item after <var>Insert</var> returns. </td></tr>
<tr><th>string</th>
<tr><th>string</th>
<td>A string that is to be inserted into the '''%sl''' <var>Stringlist</var>.</td></tr>
<td>A <var class="term">string</var> that is to be inserted into the <var>sl</var> <var>Stringlist</var>.</td></tr>
</table>
</table>


Line 20: Line 20:
<ul>
<ul>
<li>All errors in <var>Insert</var> result in request cancellation.
<li>All errors in <var>Insert</var> result in request cancellation.
<li>Before <var class=product>Sirius Mods</var> Version 6.6, it was a request canceling error to try to insert a longstring longer than the size limit of a <var>Stringlist</var> item: 6124 bytes. This limitation was eliminated in <var class=product>Sirius Mods</var> Version 6.6.
<li>Before <var class="product">Sirius Mods</var> Version 6.6, it was a request canceling error to try to insert a string longer than the size limit of a <var>Stringlist</var> item: 6124 bytes. This limitation was eliminated in <var class="product">Sirius Mods</var> Version 6.6.
<li>An <var>Insert</var> can result in the splitting of a <var>Stringlist</var> leaf page. Once a leaf page is split, it will not be merged back together, even if subsequent [[RemoveItem (Stringlist function)]] invocations make this possible. Because of this splitting, heavy use of Insert and RemoveItem can result in "sparse" Stringlists which place an unnecessary burden on the buffer pool and CCATEMP. To make matters worse, Copy does a page-for-page copy of a Stringlist, so it does not result in any compression of the resultant Stringlist. Stringlist compression can be achieved using the [[CopyItems (Stringlist function)]].</ul>
<li>An <var>Insert</var> can result in the splitting of a <var>stringlist</var> leaf page. Once a leaf page is split, it will not be merged back together, even if subsequent <var>[[RemoveItem (Stringlist function)|RemoveItem]]</var> invocations make this possible. Because of this splitting, heavy use of <var>Insert</var> and <var>[[RemoveItem (Stringlist function)|RemoveItem]]</var> can result in "sparse" <var>stringlists</var> which place an unnecessary burden on the buffer pool and CCATEMP. To make matters worse, <var>[[Copy (Stringlist function)|Copy]]</var> does a page-for-page copy of a <var>stringlist</var>, so it does not result in any compression of the resultant <var>stringlist</var>. <var>stringlist</var> compression can be achieved using the <var>[[CopyItems (Stringlist function)|CopyItems]]</var>.</ul>


[[Category:Stringlist methods|Insert function]]
[[Category:Stringlist methods|Insert function]]

Revision as of 05:21, 26 January 2011

Insert strings into a Stringlist (Stringlist class)


This callable method inserts a string into a Stringlist at a specific location.

Syntax

[%count =] sl:Insert( itemNum, itemList)

Syntax terms

%count A numeric variable to contain the number of items in sl after the string has been inserted.
sl A Stringlist object.
itemnum The item number before which the string is to be inserted. If itemnum is equal to the number of items in the Stringlist plus one, string is added to the end of the Stringlist (the same effect as an Add invocation). Because the string is inserted before the indicated item number, itemnum is also the item number of the new Stringlist item after Insert returns.
string A string that is to be inserted into the sl Stringlist.

Usage notes

  • All errors in Insert result in request cancellation.
  • Before Sirius Mods Version 6.6, it was a request canceling error to try to insert a string longer than the size limit of a Stringlist item: 6124 bytes. This limitation was eliminated in Sirius Mods Version 6.6.
  • An Insert can result in the splitting of a stringlist leaf page. Once a leaf page is split, it will not be merged back together, even if subsequent RemoveItem invocations make this possible. Because of this splitting, heavy use of Insert and RemoveItem can result in "sparse" stringlists which place an unnecessary burden on the buffer pool and CCATEMP. To make matters worse, Copy does a page-for-page copy of a stringlist, so it does not result in any compression of the resultant stringlist. stringlist compression can be achieved using the CopyItems.