前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VFP搞定所有语言接口对接,字节数组难倒一众狐友,重庆科大侠出手了

VFP搞定所有语言接口对接,字节数组难倒一众狐友,重庆科大侠出手了

作者头像
加菲猫的VFP
发布2021-11-02 16:43:54
7050
发布2021-11-02 16:43:54
举报
文章被收录于专栏:加菲猫的VFP

重庆:洪义科

自从教了中间层对接大法,搞定了所有的语言的对接,但很多朋友们就遇到了字节数组这个东西,科科最近也遇到了,他也顺利解决了。

因为JAVA,C#里面有所谓的字符数组,在VFP是没有的,它是字符串。

随缘先生,就到处找问VFP转字节数组方法。

上面的C#代码翻译成VFP

代码语言:javascript
复制
Declare String HmacSHA1 in hmac.dll String, String
str3=UPPER(HmacSHA1(str2, priKey))
csign=STRCONV(str3,13)

不要被所概念所迷惑了。

今天的文章就把这东西沉淀下来。

以下是科先生帮我们填的坑。

近日,多个项目接口需要使用到参数类型为“字节数组”,一开始挺茫然的。

有人说这个对其他语言来说是字节数组,但在VFP中就是字符串,不需要转换。

网上查了一堆其他语言的hextoarray,最初有被其他语言有误导,但其核心方法是能移植到VFP中的。对比其他语言,有很多处理在VFP中已经有相应的完整算法,VFP实现起来的步骤更为简单,做进制的转换处理,若将文件转为字节数组,需要先用filetostr(文件名),将文件转为字符串后传入hextoarray

VFP 本身也有 STRCONV(字符串,15)来转换,但据科科验证,127之上有转换有问题。大家可以验证一下。 加菲猫注

需要注意的是:byte[] 数据范围是 -128至127,在VFP中要对 >127的做数据处理。

至于为什么要用字节数组,这个优点自己“度娘”一下就明白了。

整个过程中最初爬了不少的坑T.T 详细的就不说了,看下方源码吧..

代码语言:javascript
复制
PROCEDURE hextoarray
  LPARAMETERS lchex_str
  PRIVATE ALL
  lcstr16=STRCONV(lchex_str,15) 
  lcarray=[]
  FOR lc_i=1 TO LEN(lcstr16) STEP 2
    lcstr=SUBSTR(lcstr16,lc_i,2)
    lcstr=EVALUATE([0x]+lcstr)
    IF lcstr>127
      lcstr = lcstr-256
    ENDIF 
    lcarray=lcarray+[,]+TRANSFORM(lcstr)
  ENDFOR
  lcarray=SUBSTR(lcarray,2)
  lcarray='['+lcarray+']'
  RETURN lcarray
ENDPROC 

猫猫的心里话

如何帮助使用VFP的人?

用VFP的人,有专业的,有非专业了,很多人其实是小白,问出的问题是小白,如果问题不对,我们引导他们问正确的问题。无论如何请不要嘲笑他们说帮助都不看,这么简单的问题都不会,嘲笑别人不行,而无法提出建设性答案,是很low的。

我们无论工作需要,还是有自己的软件,都是是需要真正的知识,如何让更多人学习真正的VFP知识呢,只需要点赞,在看,能转发朋友圈就更好了。

加菲猫的vfp倡导用VFP极简混合开发,少写代码、快速出活,用VFP,但不局限于VFP,各种语言混合开发。

已经带领一百多名会员成功掌到VFP的黑科技,进入了移动互联网时代,接下来我们要进入物联网领域。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 加菲猫的VFP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档