structWrite(structure, key, value[, allowOverwrite])
Last updated May 09, 2003
Version: 1 | Requires: CF5 | Library: DataManipulationLib
	Description: 
	A replacement for structInsert() function. Works around the structInsert() feature of thowing an error if you are writing to a struct, the key exists, and you don't want to overwrite.
	Return Values: 
	Returns yes or no indicating if a change was made.
Example:
<cfset fishStock = structNew()>
<cfdump var="#fishStock#" />
<cfset result = structWrite( fishStock, "trout", "100", "false" )>
<cfdump var="#result#" />
<cfdump var="#fishStock#" />
<hr />
<cfset result = structWrite( fishStock, "trout", "50", "false" )>
<cfdump var="#result#" />
<cfdump var="#fishStock#" />
<hr />
<cfset result = structWrite( fishStock, "trout", "0", "true" )>
<cfdump var="#result#" />
<cfdump var="#fishStock#" />
<hr />
<cfset result = structWrite( fishStock, "salmon", "10", "true" )>
<cfdump var="#result#" />
<cfdump var="#fishStock#" />
Parameters:
| Name | Description | Required | 
|---|---|---|
| structure | Struct to be modified. | Yes | 
| key | Key to modify. | Yes | 
| value | Value to use. | Yes | 
| allowOverwrite | Boolean. If false and key exists, value will not be changed. Defaults to false. | No | 
Full UDF Source:
/**
 * Like structInsert() but does not throw an error if the key exists and you choose not to overwrite.
 * 
 * @param structure      Struct to be modified. (Required)
 * @param key      Key to modify. (Required)
 * @param value      Value to use. (Required)
 * @param allowOverwrite      Boolean. If false and key exists, value will not be changed. Defaults to false. (Optional)
 * @return Returns yes or no indicating if a change was made. 
 * @author Anthony Cooper (ant@bluevan.co.uk) 
 * @version 1, May 9, 2003 
 */
function structWrite(structure, key, value) {
    var valueWritten = false;
    var allowOverwrite = false;
        
    if(arrayLen(arguments) gte 4) allowOverwrite = arguments[4];
    if ( structKeyExists( structure, key ) IMP allowOverwrite ) {
        valueWritten = structInsert( structure, key, value, allowOverwrite );
    }
    return yesNoFormat(valueWritten);
}
Search CFLib.org
Latest Additions
									
									Raymond Camden added 
									QueryDeleteRows 
									November 04, 2017
								
								
									
									Leigh added 
									nullPad 
									May 11, 2016
								
								
									
									Raymond Camden added 
									stripHTML 
									May 10, 2016
								
								
									
									Kevin Cotton added 
									date2ExcelDate 
									May 05, 2016
								
								
									
									Raymond Camden added 
									CapFirst 
									April 25, 2016