iCAx开思工具箱

标题: 问题请教,关于KF函数 [打印本页]

作者: thermal    时间: 2005-12-5 11:02
标题: 问题请教,关于KF函数
大家好,请问一下extern int UF_KF_create_child_rule (
tag_t part_of_rule,
const char * name_chain,
const char * rule_name,
const char * child_class_name,
int num_parameters,
char ** parameter_names,
char ** parameter_rules,
char ** generated_name );
第七项中是不是只能接受 char* rules[ ]={"10","5"}这样的数字,请问怎么能接受变量如 char* rules[ ]={"len","width"} 把len, width在外面赋值怎么传递不进去呢?
作者: thermal    时间: 2005-12-6 09:21
有没有知道的啊 帮帮忙啊
作者: thermal    时间: 2005-12-7 09:23
有人知道吗  帮帮忙啊
作者: Afang    时间: 2005-12-7 12:34
自己包的函数,看看就应该知道了吧……
int KF_create_child_rule(char *class_name,        char *child_name,
                                                                   char **para_name,        char **para_value,
                                                                   int        count)
{
        int                response=0;
        char        rule_content[600];
        char        temp_string[133];
        int                i;

        /*create the child rule*/
        sprintf(temp_string, "{class;%s;",class_name);
        strcpy(rule_content,temp_string);

        if (count > 0)
        {
                for (i = 0; i< count; i++)
                {
                        sprintf(temp_string, "%s;%s;",para_name[i],para_value[i]);
                        strcat(rule_content,temp_string);
                }
        }
        strcat(rule_content,"}");
        response = UF_KF_create_rule("root:",
                                                                child_name,      
                                                                "child",     
                                                                rule_content,
                                                                NULL );
       
        return response;
}
作者: thermal    时间: 2005-12-7 13:26
好象不行啊 afang,我要实现参数化,就是要把变量的值赋给para_value[i]的,但是para_value[i]只能接受字符串的 就象在外面int len=10, para_value[i]只能接受"10",而不能接受"len",这样怎能实现参数化呢?
作者: kingwang    时间: 2005-12-7 14:14
需要两个同时赋值:

parameter_names[0] = "len";
parameter_rules[0] = "10";
作者: thermal    时间: 2005-12-7 15:40
你可能理解错我的意思了,我的意思是怎么把外面的值赋给parameter_rules,以达到改变外面的值来驱动模型的更新,也就是更新模型的参数 所以parameter_rules[i]不能看做是常量,而是我在外面定义的一个变量,请问以上方法能实现吗
作者: Afang    时间: 2005-12-7 16:39
可以的,KF的参数更新就是重新创建一个同名的child rule




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3