夏日摸摸茶 发表于 2011-11-19 02:39:24

socket脚步 关联函数的左右边界有双引号和反斜杠时是否需要转义

socket协议的脚步,关联函数位置设置正确。

data.ws中要关联的内容:
recvbuf5 109
        "{\"onlineEngineers\":1,\"freeEngineers\":1,\"waitingUsers\":0,\"servicingU"
        "sers\":0,\"position\":1,\"cmd\":\"CMD_ACD_INFO\"}"


        lrs_save_searched_string("socket0",LRS_LAST_RECEIVED,"Allnum","LB=:","RB=,\"free",1,0,-1);



想要对onlineEngineers\":和,\"freeEngineers之间的1进行关联:
(1)当使用
lrs_save_searched_string("socket0",LRS_LAST_RECEIVED,"Allnum","LB=:","RB=,\"free",1,0,-1);时,
在未对双引号和\进行转义时,返回:
Action.c(25): lrs_save_searched_string(socket0, get_last_received_buffer, Allnum, LB=:, RB=,, 1, 0, -1)
Action.c(25): Notify: Saving Parameter "Allnum = 1".

(2)当使用
lrs_save_searched_string("socket0",LRS_LAST_RECEIVED,"Allnum","LB=:","RB=,\\\"free",1,0,-1);时,
在已对双引号和\进行转义时,返回:
Action.c(25): fiCalcSearchedStringLength: Right boundary not found
Action.c(25): Error : Unable to save to parameter lrs_save_searched_string :. Error code : 9015.

疑问:
未对双引号和\进行转义时,能回放通过,已进行转义后,提示找不到右边界,为什么呢???

msnshow 发表于 2011-11-19 21:14:01

应该要转义才对,不转义虽然事务成功了,但实际业务没成功吧

夏日摸摸茶 发表于 2011-11-19 23:18:19

回复 2# msnshow


还没往下进行呢 就是验证了一下关联成不成。
但是很郁闷的是 转义之后 报错 版主帮忙看看 转义的语句有没有问题?

夏日摸摸茶 发表于 2011-11-21 11:27:26

已解决

原因:
真正的BUF 里面的字符串是这样的   "onlineEngineers":1,"freeEngineers"
所以只需考虑在这个字符串上转义,不必考虑 LR 给你展现的报文,那是经过转义后的



即:使用
lrs_save_searched_string("socket0",LRS_LAST_RECEIVED,"Allnum","LB=:","RB=,\"free",1,0,-1);就能够成功关联;



总结:
在所有socket脚本的buf内容中,当要指定关联函数的左右边界时,忽略buf中显示的 \,只对双引号进行转义。



另外:
任何脚本中的\ 不需要转义
任何脚本中的" 都需要转义

shigejinian1 发表于 2011-11-21 11:35:30

学习一下

ymwang119 发表于 2011-11-28 14:30:06

学习一下

irisfly89 发表于 2012-8-27 13:45:49

过路

20924990 发表于 2012-8-28 09:37:39

学习了
页: [1]
查看完整版本: socket脚步 关联函数的左右边界有双引号和反斜杠时是否需要转义