| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1125 人关注过本帖
标题:求助VBA转为VFP
取消只看楼主 加入收藏
sostemp
Rank: 4
等 级:贵宾
威 望:10
帖 子:202
专家分:284
注 册:2009-6-2
结帖率:80%
收藏
 问题点数:0 回复次数:3 
求助VBA转为VFP

Function get_trace_json(mystring As String) As Integer
    Dim objJSx, objJSy As Object
    Set objJSx = CreateObject("ScriptControl")         
objJSx.Language = "JavaScript"                    
    jscode = "function json(s,i) { return eval('(' + s + ').traces[' + i + ']'); }"
    objJSx.AddCode jscode
    For n = 1 To 80
        If objJSx.Run("json", mystring, n - 1) = "" Then Exit For
        Set objJSy = objJSx.Run("json", mystring, n - 1)
        stime(n) = objJSy.acceptTime
        saddr(n) = objJSy.acceptAddress
        state(n) = objJSy.remark
        Debug.Print n & ":" & objJSy.acceptTime & objJSy.acceptAddress & objJSy.remark
    Next n
   
    If Left(state(n - 1), 2) = "妥投" Or Left(state(n - 1), 5) = "投递并签收" Then tt = "OK"
get_trace_json = n – 1
End Function

Function get_trace_json1(mystring As String) As Integer
    Dim objJSx, objJSy As Object
 
    Set objJSx = CreateObject("ScriptControl")      
    objJSx.Language = "JavaScript"                  
    jscode = "var json=" & mystring & ";"            
    objJSx.AddCode (jscode)
    For n = 1 To 80
        jscode = "var json_tr=json.traces[" & n - 1 & "];"
        objJSx.AddCode (jscode)
        If objJSx.CodeObject.json_tr = "" Then Exit For
        Set objJSy = objJSx.CodeObject.json_tr
        stime(n) = CallByName(objJSy, "acceptTime", VbGet)
        saddr(n) = CallByName(objJSy, "acceptAddress", VbGet)
        state(n) = CallByName(objJSy, "remark", VbGet)
        Debug.Print n & ":" & objJSy.acceptTime & objJSy.acceptAddress & objJSy.remark
    Next n
   
    If Left(state(n - 1), 2) = "妥投" Or Left(state(n - 1), 5) = "投递并签收" Then tt = "OK"
    get_trace_json1 = n - 1
End Function
搜索更多相关主题的帖子: state Left Then Function If 
2023-07-09 13:40
sostemp
Rank: 4
等 级:贵宾
威 望:10
帖 子:202
专家分:284
注 册:2009-6-2
收藏
得分:0 
回复 2楼 吹水佬
谢谢,不好意思,发漏了点JSOn数据。
主要是用来解析下面JSON数据的两个不同方法的函数。

Json数据如下

TEXT TO cJson_test  TEXTMERGE NOSHOW PRETEXT 15
{"traces":[{"acceptTime":"2016-12-03 12:24:25","acceptAddress":"宿州市","remark":"宿州市邮政速递公司北区揽投部已收件(揽投员姓名:陆登杰,联系电话:18955780863)"},{"acceptTime":"2016-12-03 18:45:11","acceptAddress":"宿州市","remark":"离开宿州市 发往蚌埠市"},{"acceptTime":"2016-12-03 21:13:10","acceptAddress":"蚌埠市","remark":"到达蚌埠市处理中心(经转)"},{"acceptTime":"2016-12-03 21:14:29","acceptAddress":"蚌埠市","remark":"离开蚌埠市 发往南京市(经转)"},{"acceptTime":"2016-12-04 01:31:00","acceptAddress":"南京市","remark":"到达EMS航空集散中心(南京)处理中心(经转)"},{"acceptTime":"2016-12-04 06:34:00","acceptAddress":"南京市","remark":"离开南京市 发往北京市(经转)"},{"acceptTime":"2016-12-04 08:39:00","acceptAddress":"北京市","remark":"到达  中国邮政速递物流股份有限公司北京市邮件处理中心(航 处理中心"},{"acceptTime":"2016-12-04 11:22:04","acceptAddress":"北京市","remark":"离开中国邮政速递物流股份有限公司北京市国货航航空邮件处 发往北京邮政速递上地区域分公司清华营投部"},{"acceptTime":"2016-12-04 13:23:00","acceptAddress":"北京市","remark":"北京邮政速递上地区域分公司清华营投部安排投递,预计23:59:00前投递"},{"acceptTime":"2016-12-04 15:50:40","acceptAddress":"北京市","remark":"投递并签收,签收人:本人收"}]}
ENDTEXT
2023-07-09 15:51
sostemp
Rank: 4
等 级:贵宾
威 望:10
帖 子:202
专家分:284
注 册:2009-6-2
收藏
得分:0 
回复 4楼 nbwww
谢谢您的回复,结果会提取。
但想要的是转化那2 个vba,并不是要结果,是想学学对照转化。
2023-07-09 20:10
sostemp
Rank: 4
等 级:贵宾
威 望:10
帖 子:202
专家分:284
注 册:2009-6-2
收藏
得分:0 
回复 7楼 easyppt
主要想要的是转化顶楼 2 个vba函数,目前未解决。
不是要获取结果,甚至用ⅴFP自带AIines都可提取结果。

JSOn数据只是供测试用,不过如何简洁高效通用的批替则是另一个知识点。
2023-07-10 21:01
快速回复:求助VBA转为VFP
数据加载中...
 
   



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

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