Tips

4D Open APIs - Part IX:配列(sample code)への選択

日付2001/09/07
ID01-723
バージョン6.7.x specific
プラットフォームWindows and Mac

次の例は、配列に現在の選択の内容をコピーする方法を教えます;特に、このコードは、配列に5つの英数字フィールドの内容をコピーし、それらを表示するでしょう。

void SelectionToArray(void)
{
ハReqFieldRecPtr FieldList;
ハArrayHandle hBuffer;
ハint2 TargetFile=1, n=9;
ハint4 CountRecords;
ハint myErr;
ハPtr pSrc;
ハDataRec Data;
ハshort i;
ハif ( FieldList == nil)
ハハ myErr = MemError();
ハelse
{
ハハCheck(_4D_SelectAllRecords(hConnect, 1),"_4D_SelectAllRecords\0");
ハハ FieldList = (ReqFieldRecPtr)malloc(sizeof(ReqFieldRec) + ((2*n)-1)*sizeof(int2));
ハハFieldList->NB_Fields = n;
ハハFieldList->TargetFile =TargetFile;
ハハFieldList->Fields[0]= TargetFile;
ハハ FieldList->Fields[1]=1 ;
ハハFieldList->Fields[2]= TargetFile;
ハハFieldList->Fields[3]=2 ;
ハハFieldList->Fields[4]= TargetFile;
ハハFieldList->Fields[5]=3 ;
ハハFieldList->Fields[6]= TargetFile;
ハハFieldList->Fields[7]=4 ;
ハハFieldList->Fields[8]= TargetFile;
ハハFieldList->Fields[9]=5 ;
ハハhBuffer = nil;
ハハCheck(_4D_SelectionToArray(hConnect, FieldList, &hBuffer), 36);
ハハCountRecords = **(long **)hBuffer;
ハハHLock((Handle) hBuffer);
ハハpSrc =*((Handle)hBuffer)+4 ;
ハハData.typ = -1;
ハハ for( i=0; iハハハpSrc +=pSrc[0]+4;
ハハハBlockMove(pSrc, Data.u.s , pSrc[0]+5);
ハハハData.typ =s_AlphaNumeric;
}
ハハprintf("%s",Data.u.s);
ハハgetchar();
ハハ if ( hBuffer != nil)
ハハハFree4DHandle((Handle4D) hBuffer);
ハハfree(FieldList);}
}