| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2937 人关注过本帖
标题:在VFP9.0中CTOBIN( LEFT( m.cPI, 4 ), 'rs' ) 可以使用,但是VFP8.0不支持
只看楼主 加入收藏
qiuxingce
Rank: 2
等 级:论坛游民
帖 子:118
专家分:93
注 册:2014-1-17
收藏
得分:0 
经过试验那个创建新桌面运行外部程序的过程测验,有些外部应用会出现在新桌面中运行,直到关闭它,有些应用则没有出现预期的运行效果(没有出现新桌面没有打开应用),看来吹版的代码是正确的,我写的逆运算代码应该也没大有问题。
2020-04-08 05:42
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43182
注 册:2014-5-20
收藏
得分:0 
回复 10楼 qiuxingce
简单写个(没有容错)
FOR n=1 TO 4
    ? "0h"+STRCONV(BTOCRS(0x12345678,n),15),",",;
      TRANSFORM(CTOBRS(0h78563412,n),"@0")
ENDFOR

FUNCTION BTOCRS(nSI, n)
    LOCAL ret
    ret = ""
    FOR i=1 TO n
        IF nSI > 0
            ret = ret + CHR(nSI % 0x100)
            nSI = INT(nSI / 0x100)
        ELSE
            EXIT
        ENDIF
    ENDFOR
    RETURN ret
ENDFUNC

FUNCTION CTOBRS(cSI, n)
    LOCAL ret, m
    ret = 0
    m = 1
    FOR i=1 TO n
        ret = ret + m*ASC(SUBSTR(cSI,i,1))
        m = m * 0x100
    ENDFOR
    RETURN ret
ENDFUNC
收到的鲜花
  • qiuxingce2020-04-08 06:58 送鲜花  10朵   附言:非常感谢吹版主!
2020-04-08 06:44
qiuxingce
Rank: 2
等 级:论坛游民
帖 子:118
专家分:93
注 册:2014-1-17
收藏
得分:0 
回复 12楼 吹水佬
一点经验,刚才吹版代码中的0h78563412,在VFP8.0中其实是不支持的,所以运行吹版的代码就会出错,在VFP9.0中就支持。所以,在代码编写过程中出现一些莫名其妙的错误时,尤其是代码是来自互联网上检索的时候,如果找不出原因,不妨考虑一下VFP版本的问题。
2020-04-08 07:16
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43182
注 册:2014-5-20
收藏
得分:0 
回复 13楼 qiuxingce
0h78563412是二进制字符型,相当于 CHR(0x78)+CHR(0x56)+CHR(0x34)+CHR(0x12)
2020-04-08 07:33
瓜瓜1990
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:18
帖 子:125
专家分:699
注 册:2020-2-25
收藏
得分:0 
数值型转换为 LONG 或 DWORD 型值
FUNCTION NumToLONG
LPARAMETERS tnVal
#DEFINE m0 256
#DEFINE m1 65536
#DEFINE m2 16777216
LOCAL b0, b1, b2, b3
b3 = INT(tnVal/m2)
b2 = INT((tnVal - b3*m2)/m1)
b1 = INT((tnVal - b3*m2 - b2*m1)/m0)
b0 = MOD(tnVal, m0)
RETURN CHR(b0)+CHR(b1)+CHR(b2)+CHR(b3)
ENDFUNC

LONG 或 DWORD 型值转换为数值型
FUNCTION LONGtoNum
LPARAMETERS tcVal
RETURN ASC(SUBSTR(tcVal, 1,1)) + ;
ASC(SUBSTR(tcVal, 2,1)) * 256 +;
ASC(SUBSTR(tcVal, 3,1)) * 65536 +;
ASC(SUBSTR(tcVal, 4,1)) * 16777216
ENDFUNC
注:
R 高位在后,低位在前
S 不使用符号位

piu~piu~
2020-04-08 23:24
快速回复:在VFP9.0中CTOBIN( LEFT( m.cPI, 4 ), 'rs' ) 可以使用,但是VFP8.0不 ...
数据加载中...
 
   



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

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