CFLib.org – Common Function Library Project

ListWrap(lst, length[, br][, delimiter])

Last updated July 15, 2013

author

Tony Brandner

Version: 1 | Requires: CF5 | Library: StrLib

Description:
Takes in a list, a length, and an optional string and delimiter. It parses through the list, inserting "string" in such a way that the list will appear to be wrapped every "length" elements. Meant to be used with break strings like '<br>'.

Return Values:
Returns a string.

Example:

<cfset TempList = "a,b,c,d,e,f,g,h,i,j">
<cfoutput>
List:<br>#TempList#<br>
Wrapped List:<br>#ListWrap(TempList,4,"<br>",",")#
</cfoutput>

Parameters:

Name Description Required
lst The list to modify. Yes
length The place to do insertions. Yes
br String to insert. Detauls to a break tag. No
delimiter The delimiter to use. Defaults to a comma. No

Full UDF Source:

/**
 * Wraps a list every n elements.
 * 
 * @param lst 	 The list to modify. (Required)
 * @param length 	 The place to do insertions. (Required)
 * @param br 	 String to insert. Detauls to a break tag. (Optional)
 * @param delimiter 	 The delimiter to use. Defaults to a comma. (Optional)
 * @return Returns a string. 
 * @author Tony Brandner (tony@brandners.com) 
 * @version 1, July 15, 2013 
 */
function ListWrap(lst, lngth) {
	var newList=lst;
	var br="<br>";
	var delimiter=",";
        var i = lngth;
	// check for optional arguments
	if(ArrayLen(arguments) eq 3) {
		br = arguments[3];
	} else if (ArrayLen(arguments) EQ 4) {
		br = arguments[3];
		delimiter = arguments[4];
	}
	// loop through list
	for (i=lngth; i LE ListLen(lst,delimiter); i=i+lngth) {
		if (ListLen(lst, delimiter) GT i) {
			// append the break string to the next element
			newList = ListSetAt(newList, i+1, br & ListGetAt(lst, i+1, delimiter), delimiter);
		}
	}
	return newList;
}
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