测霸 发表于 2009-11-20 10:40:14

在线等啊在线等:二维数组在LR中不支持么?

我用LR9.1录制一个脚本,需要用到二维数组,我用下面的方法定义的
char s11[]="0_1_0";
char s12[]="0_2_0";
char s13[]="0_3_0";
char *array[]={s11,s12,s13};
但是一编译就报错,报错信息如下:
Action.c (14): initializer must be constant
请教下,LR不支持二维数组么?我想做个循环比较,用buffer中的字符串和array中的字符串一个个比较,找到相同的,应该怎么做才能实现呢?

[ 本帖最后由 测霸 于 2009-11-20 11:03 编辑 ]

测霸 发表于 2009-11-20 11:21:31

我把其他的代码都屏蔽了,单独写了个比较的程序,编译不通过,不明白啊,不明白,有LR的童鞋们放上去执行下看看啊~
char s11[]="0_1_0";
char s12[]="0_2_0";
char s13[]="0_3_0";
int j;
int result;
char *array[]={s11,s12,s13};
char buffer[]="0_2_0";
for (j=0;j<3;j++)
       {
                result = strcmp( buffer,*array);
                if (result==0) {                  
                        lr_output_message("相等");
                                        else
                                                continue;
                                        }

[ 本帖最后由 测霸 于 2009-11-20 11:23 编辑 ]

dennyqiang 发表于 2009-11-20 11:57:26

代码声明得有问题,不用这么复杂。楼主是要定义字符串数组,而在C中是没有string这种类型来定义字符串数组的,所以只能用char来定义一个二维的字符数组,便可得到一个一维的字符串数组。

楼主可参考以下代码,理解其意图:
int j, result;
char str = {"0_1_0","0_2_0","0_3_0"};
for (j=0; j<3; j++) {
        result = strcmp("0_2_0", str);
        if (result == 0)
                                lr_output_message("相等");
                     else
                         lr_output_message("不相等");
}

云层 发表于 2009-11-20 12:03:27

真不愧是强哥啊。。

测霸 发表于 2009-11-20 13:10:19

多谢强哥,问题终于解决了.

泥泥虫 发表于 2009-11-20 14:11:40

饿。。。。惊现云层老师。
页: [1]
查看完整版本: 在线等啊在线等:二维数组在LR中不支持么?