iCAx开思工具箱

标题: 表达式 [打印本页]

作者: 刘亮    时间: 2004-9-4 10:19
标题: 表达式
我想把从对话框控件中获得的值(val=list_data0.value.real;)作为表达式变量(string="p6=val";)来更新模型,怎么更新不了,如果(string="p6=4")就可以,是不是不能(string="p6=val";)这样用,那怎么用阿?兄弟们,
部分代码如下:
  
   list_data0.item_id=CHANGE_REAL_1;
   list_data0.item_attr=UF_STYLER_VALUE;
  
   UF_STYLER_ask_value(dialog_id,[$list_data0)]
  
   val=list_data0.value.real;
  
  part_tag=UF_PART_ask_display_part();
  UF_MODL_ask_exps_of_part( part_tag,[$number_of_exps,&exps)]
  for(i=0;i<number_of_exps;i++)
  {
  UF_MODL_ask_exp_tag_string(exps,[$string)]
   UF_free(string);
  }
  UF_free(exps);
  string="p6=val";
  
  UF_MODL_edit_exp(string);
  UF_MODL_update();
作者: fourwood    时间: 2004-9-4 11:16
string="p6=val";  
改为:
char string[133];
strcpy( string, "p6=val" );
  
这可不是C++中的string类
作者: zhjb113    时间: 2004-9-4 22:22
没搞错吧,这样的错误都能出现
  
val是你的程序变量,怎么能让UG认识呢,除非你建立一个名字为val的表达式
作者: 刘亮    时间: 2004-9-5 08:58
那你说这样的错误怎样纠正呢?
作者: 刘亮    时间: 2004-9-5 10:56
我搞定,谢谢各位!
作者: zhjb113    时间: 2004-9-5 12:24
能告诉大家如何搞定的吗
  
问题出在哪里?
  
给其他人一点借鉴的经验阿
作者: zzz    时间: 2004-9-5 17:54
fourwood wrote:
string="p6=val";   
  改为:  
  char string[133];  
  strcpy( string, "p6=val" );  
  
  这可不是C++中的string类

  
使用sprintf(string, "p6=%d", val);最好。
作者: fourwood    时间: 2004-9-5 21:47
抱歉,没有仔细看程序,我以为是zhjb113 所说的那种情况
作者: 刘亮    时间: 2004-9-6 09:31
就是楼上斑竹说的那样,不是ug的问题,而是c没有学好.
谢谢,版主!!!




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