Here is an example, however Intellicad does not have the function acdbGroupCodeToType,
but it's simple enough to write one or just use the DXF codes you know
void doit(void)
{
resbuf *pRb = NULL;
TCHAR *tablename[]=
{
_T("APPID"), _T("BLOCK"), _T("DIMSTYLE"),
_T("STYLE"), _T("LAYER"),_T("LTYPE"),
_T("UCS"), _T("VIEW"), _T("VPORT")
};
for (int types = 0; types < (sizeof(tablename)/sizeof(tablename[0])); types++)
{
ads_printf(_T("\n%s "),tablename[types]);
for (pRb = ads_tblnext(tablename[types],1);
pRb != NULL;
pRb = ads_tblnext(tablename[types],0))
{
for(const resbuf *pRbTemp = pRb; pRbTemp != NULL; pRbTemp = pRbTemp->rbnext)
{
switch(acdbGroupCodeToType(pRbTemp->restype))
{
case AcDb::kDwgText:
ads_printf(_T("%s "), pRbTemp->resval.rstring);
break;
case AcDb::kDwgInt16:
ads_printf(_T("%d "), pRbTemp->resval.rint);
break;
case AcDb::kDwgInt32:
ads_printf(_T("%ld "), pRbTemp->resval.rlong);
break;
case AcDb::kDwgReal:
ads_printf(_T("%f "), pRbTemp->resval.rreal);
break;
case AcDb::kDwg3Real:
ads_printf(_T("(%f,%f,%f) "),
pRbTemp->resval.rpoint[0],
pRbTemp->resval.rpoint[1],
pRbTemp->resval.rpoint[2]
);
case AcDb::kDwgHandle:
case AcDb::kDwgHardOwnershipId:
case AcDb::kDwgSoftOwnershipId:
case AcDb::kDwgHardPointerId:
case AcDb::kDwgSoftPointerId:
ads_printf(_T("%ld "),
pRbTemp->resval.rlname[0]);
break;
case AcDb::kDwgNotRecognized:
ads_printf(_T("*Not Recognized* "));
break;
}
}
ads_printf(_T("\n"));
ads_relrb(pRb);
}
}
}