Vensim模拟结果vdf数据文件转化为可读文本文件

准备重装电脑,想起以前项目需要折腾过这么一个玩意,就记录一下,虽然以后再也用不到了。

vensim的模拟结果文件格式为vdf,用记事本打开看到一堆乱码,所以只能找vensim二次开发的相关资料。

vensim的公司本身提供关于vensim的二次开发接口,但是似乎只有vensim专业版还是什么版本才有,付费好像是好几千rmb吧,做项目的时候找了n久没找到破解版的。

通过阅读文档发现似乎只需要一个vendll32.dll的动态链接库就可以二次开发,但vensim ple版本在安装路径或系统文件夹都找不到这个这个dll,本来都准备放弃了。意外发现vensim的公司还提供一款叫vensim model reader的软件,可以读取模型之类的,猜测这个软件或许会有vendll32.dll。安装后终于在系统文件夹里找到。

有了这个dll,就可以将加密的vdf文件进行转化了,只用将调用dll里的vensim_command方法,将命令“MENU>VDF2DAT|XXX.vdf|XXX.txt”作为参数传递进去就行。

有点蛋疼的是vensim model reader对系统中文的支持有点问题,但还是可以用编码转化的方法处理。

            //编码转化
            byte[] array1 = Encoding.UTF8.GetBytes(pathVdf);
            string sourcePath = Encoding.Default.GetString(array1);
            byte[] array2 = Encoding.UTF8.GetBytes(pathData);
            string targetPath = Encoding.Default.GetString(array2);
            cmd = cmd + "|" + sourcePath + "|" + targetPath;   


随便建了个模型,验证运行的结果和转化的结果,可以看到结果一致

转化结果一致转化结果一致

需要注意的是,安装后vensim model reader之后打开mdl模型文件会受影响,需要重复安装vensim将mdl的默认打开软件修改回来,总之比较蛋疼

另外,只有安装了vensim model reader之后才能使用vendll32.dll,否则会提示dll未注册。

demo需要用安装好的系统文件夹里的vendll32.dll替代,否则可能出现reinstall vensim的问题。

demo实例

vensim model reader

2021.10更新---------------------------------------------------------------

前段时间为了研究评论的问题,装了下vensim发现了一个事情。

第2条显示不能随意使用vensim model reader的vensim DLL来开发。

所以为了规避这方面的风险,决定还是把vensim model reader这个软件的资源去掉了,只保留demo仅供需要的人参考。vensim model reader还是能去官网下载的,估计也更新了好几个版本,就是要填写信息麻烦一点。

还有就是vendll32.dll里的方法,可以参考官网的文档的这部分,里面有些方法我也没搞懂怎么用,反正调用成功,但是返回失败,也不知道哪里的问题,庆幸当初需要的方法还是能成功使用。

 vendll32部分方法描述

总之,大体就是这样,希望对有需要的人有所帮助。不过个人是确实没什么想法折腾这东西了,小众而且我也用不上,这应该是最后一次更新这篇博文了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值