关于lr_paramarr_random()的使用
以下是我的脚本:Action()
{
char TestArray;
char *temp;
temp="12";
lr_save_string("1","TestArray_1");
lr_save_string("12","TestArray_2");
lr_save_string("11","TestArray_3");
lr_save_string("122","TestArray_4");
lr_save_string("13","TestArray_5");
lr_output_message("数组的第一个值%s",lr_eval_string("{TestArray_1}"));
lr_output_message("数组的第一个值%s",lr_eval_string("{TestArray_2}"));
lr_output_message("数组的第一个值%s",lr_eval_string("{TestArray_3}"));
lr_output_message("数组的第一个值%s",lr_eval_string("{TestArray_4}"));
lr_output_message("数组的第一个值%s",lr_eval_string("{TestArray_5}"));
temp = lr_paramarr_random("TestArray");
//lr_save_string(lr_paramarr_random("{TestArray}"),"temp");
lr_output_message("数组的随机值%s",temp);
return 0;
}
为什么获取到的temp是空值?怎样可以随机输出数组中的值???
还有用lr_paramarr_idx(TestArray,0);去固定数组的值,怎么输出这个固定数组的值???
请大家指教!!!
lr_save_string("1","TestArray_1");
这个并没有实现将1存到“TestArray”这个char中,而是存在了“TestArray_1”这个char中
c语言中,char str 表示str可以存放10个字母的字符,不是其它语言的char(string)型的数组; 自己顶!!!! 参数数组必须满足以下两个条件:
1.参数必须都是以相同的名字开头,后面接下划线加数字的方式顺序赋值。
2.参数数组必须有一个“参数名_count”的参数来记录数组的长度
char TestArray;
把这个定义去了试试 jingzizx 发表于 2016-10-8 15:24
char TestArray;
把这个定义去了试试
没有用。
这个函数是可以的:
sss = lr_paramarr_idx("TestArray",1);
lr_output_message("数组的固定值%s",sss);
但是lr_paramarr_len()这个跟lr_paramarr_random()一样都不行。 char TestArray;
char *temp;
temp="12";
1.定义类型错误。char ?空temp 定义类型。
2.取值错误。lr_output_message("数组的第一个值%s",lr_eval_string("{TestArray_5}"));
fhhh_eyou 发表于 2016-10-8 17:23
char TestArray;
char *temp;
temp="12";
1、数组是这样定义的哦。char paramArrayName;
2、lr_output_message("数组的第一个值%s",lr_eval_string("{TestArray_5}"));这句话能够正常输出,没有错哦。
3、无法正常输出的是lr_paramarr_random()这个函数的部分 我补充一下问题。
1、随机取数组值函数lr_paramarr_random 运行之后取值为null
脚本如下:
char *value;
char TestArray;
lr_save_string("testA","TestArray_1");
lr_save_string("testB","TestArray_2");
lr_save_string("testC","TestArray_3");
value=lr_paramarr_random("TestArray"); //获取数组的随机值
lr_output_message("value=%s",value); //输出value=null
2、获取数组长度函数lr_paramarr_len运行 后输出的长度为0
脚本如下:
int len;
int count;
char TestArray;
lr_save_string("testA","TestArray_1");
lr_save_string("testB","TestArray_2");
lr_save_string("testC","TestArray_3");
len=lr_paramarr_len("TestArray"); //获取数组长度方法1
count=atoi(lr_eval_string("TestArray_count")); //获取数组长度方法2
lr_output_message("数组的长度len=%d",len); //输出len=0
lr_output_message("数组的长度count=%d",count); //输出count=0
大家有知道为什么的吗?求解答。
顶顶顶 这个问题我解决了,请看下面的解答! 因为使用关联函数获取的数组是有长度的,而我自定义的数组没有初始化数组长度,所以导致lr_paramarr_len()和lr_paramarr_random()函数获取的值不正确。
下面试正确的脚本:
1、关于lr_paramarr_len()
@@@int lr_paramarr_len(const char * paramArrayName);
char TestArray; //声明一个数组变量
int count; //声明一个整型变量用于保存数组的长度
int len;
lr_save_string("test","TestArray_1"); //初始化数组的每个元素
lr_save_string("a","TestArray_2");
lr_save_string("array","TestArray_3");
lr_save_string("3","TestArray_count"); //初始化数组的长度
count=lr_paramarr_len("TestArray"); //获取数组的长度
lr_output_message("数组的长度是:%d",count); //输出数组的长度
2、关于lr_paramarr_len()
@@@lr_eval_string(“{paramArrayName _count}”);
char TestArray; //声明一个数组变量
lr_save_string("test","TestArray_1"); //初始化数组的每个元素
lr_save_string("a","TestArray_2");
lr_save_string("array","TestArray_3");
lr_save_string("3","TestArray_count"); //初始化数组的长度
//这里注意,使用lr_eval_string()函数获取到的变量是字符型
// 需要用atoi()强制转为整型变量,才能正确输出
lr_output_message("数组的长度是:%d",atoi(lr_eval_string("{TestArray_count}"))); //输出数组的长度
3、关于lr_paramarr_random()
@@@char * lr_paramarr_random(const char * paramArrayName);
char TestArray; //声明一个数组变量
char *str; //定义一个变量来保存数组的元素
lr_save_string("test","TestArray_1"); //初始化数组的每个元素
lr_save_string("a","TestArray_2");
lr_save_string("array","TestArray_3");
lr_save_string("3","TestArray_count"); //初始化数组的长度
str=lr_paramarr_random("TestArray"); //随机获取数组中的某个元素值保存到变量str中
lr_output_message("数组的随机值%s",str); //输出变量str的值,即数组的随机元素值
注意,这里一定要有【lr_save_string("3","TestArray_count"); //初始化数组的长度 】,不然执行的结果是错误的哦!
大家可以自己试试! Nio 发表于 2016-10-20 16:47
lr_save_string("1","TestArray_1");
这个并没有实现将1存到“TestArray”这个char中,而是存在了“TestAr ...
我知道 是将1存到TestArray_1中。
但是你说的char str是表示可以存放10个字母的字符,我有点晕。
页:
[1]