$ListIns_Lstr

From m204wiki
Revision as of 20:44, 24 October 2012 by JALWiccan (talk | contribs) (1 revision)
Jump to navigation Jump to search

Insert string into a $list

Most Sirius $functions have been deprecated in favor of Object Oriented methods. The OO equivalent for the $ListIns_Lstr function is the Insert (Stringlist function).

This function inserts longstring data into a $list. Generally, this $list would have been created with the $ListNew function.

The $ListIns_Lstr function accepts three arguments and returns a numeric result. It is a callable $function (see Calling Sirius Mods $functions).

The first argument is a $list identifier. This is a required argument.

The second argument is the item number before which the longstring is to be inserted. If this argument is equal to the number of items in the $list plus one, the longstring is added to the end of the $list and so is, in this case, identical to a $ListAdd_Lstr Because the string is inserted before the indicated item number, this item number is also the item number of the new $list item after $ListIns_Lstr returns. This is a required argument.

The third argument is a longstring that is to be inserted into the $list. This is a required argument.

Syntax

<section begin="syntax" />[%RESULT =] $ListIns_Lstr(list_id, item_num, longstring) <section end="syntax" />

$ListIns_Lstr Function

%result is set either to the number of items in the indicated $list after the string has been inserted into the $list, or to a negative number if an error has occurred.

-3 - No room to add item (if LISTFC $SirParm parameter not set) All other errors result in request cancellation

$ListIns_Lstr Error Codes

Before Sirius Mods Version 6.6, it was a request cancelling error to try to insert a longstring longer than the size limit of a Stringlist item: 6124 bytes. This limitation was eliminated in Sirius Mods Version 6.6.

$ListIns_Lstr works almost exactly like $ListIns except:

  1. It accepts a LONGSTRING input. $ListIns_Lstr can be used with regular strings as well to pick up automatic request cancellation on programming errors.
  2. It cancels the request on any errors such as invalid $list identifier or invalid $list item number.
  3. It does not have an item length argument (argument 4 in $ListIns).

A $ListIns_Lstr can result in the splitting of a $list leaf page. Once a leaf page is split, it will not be merged back together, even if subsequent $LISTREMs makes this possible. Because of this, heavy use of $ListIns_Lstr and $ListRem can result in "sparse&CQ. $lists which place an unnecessary burden on the buffer pool and CCATEMP. To make matters worse, $ListCpy does a page-for-page copy of a $list so does not result in any compression of the resultant $list. $List compression can be done using the $List_Copy_Items function.

$ListIns_Lstr is available in Version 6.2 and later of the Sirius Mods.

Products authorizing $ListIns_Lstr