51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 14406|回复: 8
打印 上一主题 下一主题

[原创] lr_eval_string应该怎么用?

[复制链接]

该用户从未签到

跳转到指定楼层
#
发表于 2008-9-19 09:53:38 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
请教个问题
int w=3;
char a3[1024]="{a3}";
strcpy(a3,lr_eval_string(w));
为什么不行?
我想把w转换成字符串存到变量a3里
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

8#
发表于 2010-12-10 23:52:32 | 只看该作者
恩,谢谢楼上提醒以前一马虎写错了如果是数字转参数应该用
lr_save_int(x,"param");
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2010-12-10 16:19:24 | 只看该作者
4楼的第二点是不是搞错了,
2.变量到参数
int x;
x=10;
lr_save_string(x,"param");
lr_eval_string("{param}");

这里lr_save_string函数的参数只支持字符型,那么你的整型x变量是不可能被存放到参数param中去的。
.变量到参数正解为:
char x[10]={123};
lr_save_string(x,"param");
lr_eval_string("{param}");
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2010-6-10 10:40:28 | 只看该作者

回复 1# 的帖子

lz说的是2个问题:
1 lr_eval_string(), eval应该是evaluate的缩写。
功能 如果只有一个参数,则返回当前参数的值。它的参数必须是{newParam} 的形式,也就是被大括号包起来
应用:对每个迭代过程中需要需要使用参数化的内容的时候。lr_output_message("value : %s", lr_eval_string("The row count is: {row_cnt}"));

例如:有一个int的参数化值{paraInt},如果直接把它作为一个int是错的。必须atoi(lr_eval_string({ParaInt}))
所以不能直接把一个int变量作为参数。
2.如何实现“我想把iTemp转换成字符串存到变量chArr里”
int iTemp=3;
char chArr[1024] = {0};
// if not unicode
itoa( itemp, charr, 10  );
应该可以
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2010-6-9 19:23:23 | 只看该作者

回复 3# 的帖子

返回为char*
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-9-19 17:35:17 | 只看该作者
如果是比较多的字符 数字 可以用这个函数 sprintf
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-9-19 16:25:02 | 只看该作者
本帖最后由 云层 于 2010-12-10 23:54 编辑

个人说实话没看明白你想做什么,感觉你把参数和变量搞糊涂了这里简单说一下常见的应用方式
1.参数的赋值和取值
lr_save_string("hello world","param");
lr_eval_string("{param}");
2.变量到参数
int x;
char *y;
y="hello";
x=10;
lr_save_int(x,"param");
lr_save_string(y,"param1");
lr_eval_string("{param}");
lr_eval_string("{param1}");
3.变量读参数
char x[100];
x="{param}";
lr_save_string("hello world","param");
lr_eval_string(x);

希望对你有些帮助
--------------根据楼下提示做了点修改
回复 支持 反对

使用道具 举报

该用户从未签到

2#
发表于 2008-9-19 10:48:06 | 只看该作者
lr_eval_string()函数的主要是返回脚本中的一个参数当前的值,返回值类型为char型.一般多用在调试脚本时输出参数的值.具体用法如下:
lr_output_message("The parameter1's value is %s",lr_eval_string("{parameter1}")),其中参数parameter1在之前已经定义了.你的代码中将int型数据拷贝到char型数组里是不行的,参考一下2#楼的代码.
回复 支持 反对

使用道具 举报

该用户从未签到

1#
发表于 2008-9-19 10:17:53 | 只看该作者
此处不应该用lr_eval_string 函数,应该用itoa 函数,具体用法如下:
     int i = 56;

       char filename[64], file_index[32];

       if (!itoa(i, file_index, 10))

              lr_output_message ("Cannot convert i to ascii char");

        else {

              sprintf (filename, "log_%s.txt", file_index);

              lr_output_message ("New file name %s", filename);

        }
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-8 14:19 , Processed in 0.072319 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表