CFLib.org – Common Function Library Project

ListMid(list, startPos, numElements[, delimiter])

Last updated April 11, 2002

author

Rob Brooks-Bilson

Version: 1 | Requires: CF5 | Library: StrLib

Description:
A Mid() function for lists. Returns n elements starting at the specified start position. Accepts an optional delimiter. Note that if the number of elements to return is greater than the number of elements in the list, the UDF simply returns all elements.

Return Values:
Returns a string.

Example:

<CFSET List="1,2,3,4,5,6,7,8,9,10">
<CFSET List2="a;b;c;d;e;f;g;h">

<CFOUTPUT>
#ListMid(List, 3, 5)#<BR>
#ListMid(List, 3, 99)#<BR>
#ListMid(List2, 2, 16, ";")#<BR>
</CFOUTPUT>

Parameters:

Name Description Required
list List you want to return the elements from. Yes
startPos Starting position in the list to begin returning from. Yes
numElements Number of elements you want returned. Yes
delimiter Delimiter for the list. Default is the comma. No

Full UDF Source:

/**
 * A Mid() function for lists.  Returns n elements starting at the specified start position.
 * 3/25/02: Removed a line of extraneous code.
 * 4/11/02: Fixed problem with going past end of list.
 * 
 * @param list 	 List you want to return the elements from. 
 * @param startPos 	 Starting position in the list to begin returning from. 
 * @param numElements 	 Number of elements you want returned. 
 * @param delimiter 	 Delimiter for the list.  Default is the comma. 
 * @return Returns a string. 
 * @author Rob Brooks-Bilson (rbils@amkor.com) 
 * @version 1.1, April 11, 2002 
 */
function ListMid(list, startPos, numElements){
  var tempList="";
  var i=0;
  var delimiter=",";
  var finish = startPos+numElements;
  if (ArrayLen(arguments) gt 3)
    delimiter = arguments[4];
  if (startPos+numElements gt ListLen(list, delimiter))
    finish = ListLen(list, delimiter)+1;
  for (i=startPos; i LT finish; i=i+1){
    tempList=ListAppend(tempList, ListGetAt(list, i, delimiter), delimiter);
  }
  return tempList;
}
blog comments powered by Disqus

Search CFLib.org


Latest Additions

Kevin Cotton added
date2ExcelDate
May 5, 2016

Raymond Camden added
CapFirst
April 25, 2016

Chris Wigginton added
loremIpsum
January 18, 2016

Gary Stanton added
calculateArrival...
November 19, 2015

Sebastiaan Naafs - van Dijk added
getDaysInQuarter
November 13, 2015

Created by Raymond Camden / Design by Justin Johnson