标题:在VFP9.0中CTOBIN( LEFT( m.cPI, 4 ), 'rs' ) 可以使用,但是VFP8.0不支持
只看楼主
qiuxingce
Rank: 2
等 级:论坛游民
帖 子:118
专家分:93
注 册:2014-1-17
结帖率:73.33%
已结贴  问题点数:20 回复次数:14 
在VFP9.0中CTOBIN( LEFT( m.cPI, 4 ), 'rs' ) 可以使用,但是VFP8.0不支持
请问如何在VFP8.0中实现CTOBIN( LEFT( m.cPI, 4 ), 'rs' ) 相同的功能?
搜索更多相关主题的帖子: LEFT VFP9.0 相同 
2020-04-07 19:03
qiuxingce
Rank: 2
等 级:论坛游民
帖 子:118
专家分:93
注 册:2014-1-17
得分:0 
    m.cSI = BINTOC( 0, 'rs' ) + BINTOC( This.pcNewDesktop, 'rs' ) + REPLICATE( CHR(0), 14*4 )
    m.cSI = BINTOC( LEN( m.cSI )+4, 'rs' ) + m.cSI
     m.hProcess = CTOBIN( LEFT( m.cPI, 4 ), 'rs' )
这些代码只能在VFP9.0中实现,可我用的是VFP8.0,请问这几行代码改如何改变为VFP8.0的呢?
2020-04-07 20:29
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:20 
自己写个CTOBIN()

cPI=0h78563412
CTOBIN(cPI)就是 0x12345678


[此贴子已经被作者于2020-4-7 20:47编辑过]

2020-04-07 20:36
qiuxingce
Rank: 2
等 级:论坛游民
帖 子:118
专家分:93
注 册:2014-1-17
得分:0 
回复 3楼 吹水佬
BINTOC和CTOBIN这些函数内部的运算机制我真地是搞不懂,对我来说太深奥了,因为没有深入的学习计算机方面的专业知识。
    m.cSI = BINTOC( 0, 'rs' ) + BINTOC( This.pcNewDesktop, 'rs' ) + REPLICATE( CHR(0), 14*4 )
    m.cSI = BINTOC( LEN( m.cSI )+4, 'rs' ) + m.cSI
    m.hProcess = CTOBIN( LEFT( m.cPI, 4 ), 'rs' )
肯请版主帮忙写个VFP8.0的函数,比如函数名BTOCRS(参数),等价于VFP9.0的BINTOC(参数,'RS'),函数名CTOBINRS(参数),等价于VFP9.0的CTOBIN(参数,'RS')。这样上述三行代码,我就可以顺利的在VFP8.0中改成
   m.cSI = BTOCRS( 0) + BTOCRS( This.pcNewDesktop) + REPLICATE( CHR(0), 14*4 )
   m.cSI = BTOCRS( LEN( m.cSI )+4 ) + m.cSI
   m.hProcess = CTOBRS( LEFT( m.cPI, 4 ) )
本人愿意微信支付100元略表感谢!
2020-04-07 20:45
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
nPI = ASC(SUBSTR(cPI,1,1));
    + ASC(SUBSTR(cPI,2,1)) * 0x100;
    + ASC(SUBSTR(cPI,3,1)) * 0x10000;
    + ASC(SUBSTR(cPI,4,1)) * 0x1000000
2020-04-07 21:02
qiuxingce
Rank: 2
等 级:论坛游民
帖 子:118
专家分:93
注 册:2014-1-17
得分:0 
回复 5楼 吹水佬
吹版主,您这个代码用在VFP8.0中就相当于VFP9.0中的CTOBIN(参数,'rs')对吗?
2020-04-07 21:11
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用qiuxingce在2020-4-7 21:11:13的发言:

吹版主,您这个代码用在VFP8.0中就相当于VFP9.0中的CTOBIN(参数,'rs')对吗?

适用32位数(无符号、占4个字节)
2020-04-07 22:19
qiuxingce
Rank: 2
等 级:论坛游民
帖 子:118
专家分:93
注 册:2014-1-17
得分:0 
回复 7楼 吹水佬
吹版,那VFP9.0中的CTOBIN(参数,'RS')在VFP8.0中如果实现呢?
2020-04-08 05:14
qiuxingce
Rank: 2
等 级:论坛游民
帖 子:118
专家分:93
注 册:2014-1-17
得分:0 
吹版,不好意思,上面写错了。应该是VFP9.0中的BINTOC(参数,'RS')在VFP8.0中如果实现呢?
2020-04-08 05:16
qiuxingce
Rank: 2
等 级:论坛游民
帖 子:118
专家分:93
注 册:2014-1-17
得分:0 
自己做了函数BTOCRS(nSI),代码如下:
lPARAMETERS nSI
LOCAL c1,c2,c3,c4
c4=CHR(INT(nSI/0x1000000))
nSI=MOD(nSI,0x1000000)
c3=CHR(INT(nSI/0x10000))
nSI=MOD(nSI,0x10000)
c2=CHR(INT(nSI/0x100))
nSI=MOD(nSI,0x100)
c1=CHR(nSI)
RETURN c1+c2+c3+c4
运行了一下btocrs(100),返回字符d,感觉差不多
2020-04-08 05:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-500924-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.298332 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved