函数名:
UF_ATTR_cycle
UF_ATTR_cycle
遍历对象所有指定类型的属性,返回下一个属性的标题和值
如果指定的类型为UF_ATTR_any(或6),则遍历对象的所有属性。
注意:调用者不应依赖属性以任何特定顺序返回。
如果没有更多的属性可供遍历,则作为循环状态(index)返回零
传递对象标示将导致遍历该对象的属性,传递零件标签将导致遍历该零件的零件属性
在新应用程序中不鼓励使用此函数
int UF_ATTR_cycle(tag_t object, int *indx, int type, char title[UF_ATTR_MAX_TITLE_BUFSIZE], UF_ATTR_value_p_t value)
object(Input): 零件或对象标识
indx(Input/Output): 循环状态(输入)(0=开始),循环状态(输出)(0=完成遍历或没有属性返回,1=返回下一个属性)
type(Input): 遍历属性的类型,有效值(UF_ATTR_bool,UF_ATTR_integer,UF_ATTR_real,UF_ATTR_time,UF_ATTR_null,UF_ATTR_string,UF_ATTR_any,UF_ATTR_reference)
title[UF_ATTR_MAX_TITLE_BUFSIZE](Output): 属性标题(最大字符长度为UF_ATTR_MAX_TITLE_BUFSIZE)
value(Input/Output): 输入的属性值(输入)如果类型是UF_ATTR_string,则value->value.string必须指向将要返回字符串值的字符数组。如果类型为UF_ATTR_reference,则value->value.string必须指向将要返回字符串值的字符数组。属性类型的值(输出)如果类型为UF_ATTR_any,返回值的类型为UF_ATTR_string或UF_ATTR_reference,则返回的字符串是动态分配的,您必须使用UF_free来释放内存。如果返回值的类型是UF_ATTR_time,则该值将在执行程序的机器所在时区中。
1. 如果查询的属性类型是字符串UF_ATTR_string,则需要手动给value.value.string分配内存(value.value.string=new char[UF_ATTR_MAX_STRING_LEN+1]),并且在使用后释放(delete value.value.string),否则调用此函数会报错。
2. 当object为NULL_TAG时此函数什么也不做,没报错也没提示。