UGOPEN实现解析NX表达式

UGOPEN函数UF_MODL_dissect_exp_string可以解析表达式,但是当表达式存在附注信息时,会将附注信息附加在 rhs_str上,例如:

 

这样,当单独获取附注信息时还需要拆分字符串,比较麻烦.其次该函数封装的不好,需要传入表达式TAG和表达式字符串,明显多此一举

针对此问题,我重新封装了一个方法,可以根据表达式TAG,单独获取表达式名称,内容以及附注信息,仅供参考

void UF_MODL_dissect_exp_string_ex(tag_t expTag, char** lhs_str, char** rhs_str, char** comment)
{
    if ((NULL_TAG == expTag) || (NULL == lhs_str) || (NULL == rhs_str) || (NULL == comment))
    {
        return ;
    }

    char* expStr = NULL;
    UF_MODL_ask_exp_tag_string(expTag, &expStr);

    size_t size = strlen(expStr) + 1;
    
    *lhs_str = (char*)malloc(size);
    memset(*lhs_str, 0, size);
    
    *rhs_str = (char*)malloc(size);
    memset(*rhs_str, 0, size);

    *comment = (char*)malloc(size);
    memset(*comment, 0, size);

    sscanf(expStr, "%[^=]=%[^//]//%s", *lhs_str, *rhs_str, *comment);
}

函数用完之后,需要free掉三个变量,假如VS警告sscanf函数unsafe,请在工程配置添加预处理命名_CRT_SECURE_NO_WARNINGS

 

posted @ 2020-08-24 23:47  快雪  阅读(712)  评论(0编辑  收藏  举报