|
Возвращает свойство объекта, имеющее тип массив Object, приведенное к типу массив size_t (для приложений С++) или Pointer (для приложений Delphi).
Синтаксис
int __stdcall JSP_objGetObjArr(
| hObj, | prp_cName, | prp_Array
| );
|
Параметры
|
Параметр
| Тип
| Описание
|
hObj
| size_t
| объект JS+, имеющий свойство типа массив Object
|
prp_cName
| char*
| имя свойства типа массив Object объекта hObj
|
prp_Array
| size_t*
| возвращаемый массив свойства prp_cName
|
|
Возвращаемое значение
JSP_OK (0) в случае успеха либо JSP_ERROR (-1) в противном случае.
------------------------ Приложение C++ Builder ------------------------
#include <algorithm>// string.reverse()
JSP_Start("TRIAL","");
JSP_RegAppFun("void","App_tstObjObjArr","size_t&,char*");
JSP_RET_void App_tstObjObjArr(size_t &hObj,char *prp_cName) { int i,j; long len; size_t obj,*obj_arr; std::string tmp_stdStr;
JSP_objGetArrLen(hObj,prp_cName,len); obj_arr=new size_t[len]; JSP_objGetObjArr(hObj,prp_cName,obj_arr);
for (i=0;i<len;i++) { // Перевернуть номер JSP_objGetIntVal(obj=obj_arr[i],"intValue",j); JSP_objSetIntVal(obj,"intValue",len-j+1);
// Перевернуть строку JSP_objGetStdStr(obj,"strValue",tmp_stdStr); reverse(tmp_stdStr.begin(),tmp_stdStr.end()); JSP_objSetStdStr(obj,"strValue",tmp_stdStr); } delete [] obj_arr; }
------------------------ Скрипт JS+ ------------------------
var obj_lst=[]; for (i=0;i<3;i++) { obj_lst.push( new Object({ intValue: i+1, strValue: "Xxxxx"+ String.fromCharCode("A".charCodeAt(0)+i) } )); }
var tst_obj={ objArray: obj_lst };
for (i=0,val_str="";i<tst_obj.objArray.length;i++) val_str+= tst_obj.objArray[i].intValue.toString()+" : "+ tst_obj.objArray[i].strValue+"\n";
App_tstObjObjArr2(tst_obj,"objArray");
for (i=0,val_str+="-\n";i<tst_obj.objArray.length;i++) val_str+= tst_obj.objArray[i].intValue.toString()+" : "+ tst_obj.objArray[i].strValue+"\n";
alert( val_str );
------------------------ Вывод скрипта JS+ ------------------------
1 : XxxxxA 2 : XxxxxB 3 : XxxxxC
3 : AxxxxX 2 : BxxxxX 1 : CxxxxX
------------------------ Приложение Delphi ------------------------
uses AnsiStrings// ReverseString()
JSP_Start('TRIAL','User=Delphi');
JSP_RegAppFun('','App_tstObjObjArr','size_t&,char*');
procedure App_tstObjObjArr(var hObj:Pointer;prp_cName:pAnsiChar) stdcall; var obj:Pointer; i,j,len:LongInt; obj_arr:array of Pointer; tmp_sysStr:string; begin JSP_objGetArrLen(hObj,prp_cName,len);
SetLength(obj_arr,len); JSP_objGetObjArr(hObj,prp_cName,@obj_arr[0]);
for i:=0 to len do begin obj:=obj_arr[i]; // Перевернуть номер JSP_objGetIntVal(obj,'intValue',j); JSP_objSetIntVal(obj,'intValue',len-j+1);
// Перевернуть строку JSP_objGetSysStr(obj,'strValue',@tmp_sysStr); JSP_objSetSysStr(Obj,'strValue',ReverseString(tmp_sysStr)); end; end; exports App_tstObjObjArr;
------------------------ Скрипт JS+ ------------------------
var obj_lst=[]; for (i=0;i<3;i++) { obj_lst.push( new Object({ intValue: i+1, strValue: "Xxxxx"+ String.fromCharCode("A".charCodeAt(0)+i) } )); }
var tst_obj={ objArray: obj_lst };
for (i=0,val_str="";i<tst_obj.objArray.length;i++) val_str+= tst_obj.objArray[i].intValue.toString()+" : "+ tst_obj.objArray[i].strValue+"\n";
App_tstObjObjArr2(tst_obj,"objArray");
for (i=0,val_str+="-\n";i<tst_obj.objArray.length;i++) val_str+= tst_obj.objArray[i].intValue.toString()+" : "+ tst_obj.objArray[i].strValue+"\n";
alert( val_str );
------------------------ Вывод скрипта JS+ ------------------------
1 : XxxxxA 2 : XxxxxB 3 : XxxxxC
3 : AxxxxX 2 : BxxxxX 1 : CxxxxX
Совместимость
C++ Builder/Delphi/Visual C++
|
JS+ | Руководство пользователя
|
|
|