2.1.17.8.21.1 Data_copy
Description
Copy a range of data from one data set to another.
Syntax
BOOL Data_copy( Dataset * pdsDest, Dataset * pdsSrc, int nSrcFrom = 0, int nSrcTo = -1, int nDestFrom = -1, BOOL bIgnoreMask = TRUE )
Parameters
- pdsDest
- [output] pointer to destination dataset
- pdsSrc
- [input] pointer to source dataset
- nSrcFrom
- [input] starting index of the source dataset (0 based offset)
- nSrcTo
- [input] ending index of the source dataset (0 based offset, default -1 copies to upper index)
- nDestFrom
- [input] starting index of the destination dataset (0 based offset, default -1 uses nSrcFrom)
- bIgnoreMask
- [input] TRUE ignores masking in source dataset, FALSE copies masked values as missing values
Return
Returns TRUE if successful and FALSE if:
1) nSrcFrom < 0 or nSrcFrom > source UpperIndex
2) nSrcTo < nSrcFrom or nSrcTo > UpperIndex
3) nDestFrom < -1 (-1 means to use nSrcFrom)
Examples
EX1
// This is a self contained sample program for the function Data_copy,
// Its sample data is created at the beginning of the program.
// To run the program, enter the following command in the Script window:
// Data_copy_ex1
// This will return the result like following:
// Copying Data2_B[3:5] to Data2_Destination[6:8] succeeded.
// In this example, the copied range exceeds the original range of the
// destination, but copying results the expansion.
//
void Data_copy_ex1()
{
BOOL rc;
Worksheet wks;
wks.Create();
Dataset myXDs(wks,0);
Dataset dsSrc(wks,1); // Dataset as a source
String strSrcName = dsSrc.GetName();
wks.AddCol("Destination"); // Add a column for the destination
Dataset dsDest(wks,2);
String strDestName = dsDest.GetName();
//******* Create sample data *****************
myXDs.SetSize(7);
dsSrc.SetSize(7);
dsDest.SetSize(7);
myXDs[0]=1; dsSrc[0]=0.097; dsDest[0]=0;
myXDs[1]=2; dsSrc[1]=0.41256; dsDest[1]=0;
myXDs[2]=3; dsSrc[2]=0.24909; dsDest[2]=0;
myXDs[3]=4; dsSrc[3]=0.47304; dsDest[3]=0;
myXDs[4]=5; dsSrc[4]=0.2476; dsDest[4]=0;
myXDs[5]=6; dsSrc[5]=0.64529; dsDest[5]=0;
myXDs[6]=7; dsSrc[6]=0.44514; dsDest[6]=0;
//******** End of Sample Data Creation *******
int nSrcFrom = 2;
int nSrcTo = 4;
int nDestFrom = 5;
rc=Data_copy(&dsDest, &dsSrc, nSrcFrom, nSrcTo, nDestFrom); // Demonstration of Data_copy
if(rc)
printf("Copying %s[%d:%d] to %s[%d:%d] succeeded.\n",
strSrcName,nSrcFrom+1,nSrcTo+1,strDestName,nDestFrom+1,(nDestFrom+nSrcTo-nSrcFrom+1));
else
printf("Error: Data_copy failed\n");
}
Remark
Copy a range of data from one data set to another. If need the destination data set will be automatically resized.
See Also
Header to Include
origin.h
Reference
|