以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  vba中WritePrivateProfileString函数能存储的最大字符数问题  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=90600)

--  作者:bage
--  发布时间:2016/1/22 11:06:21
--  vba中WritePrivateProfileString函数能存储的最大字符数问题
今天测试发现,vba模块中,调用WritePrivateProfileString函数,存在最大字符数的限制。

在vba中,循环调用
sOrderIDIgnoreNew=sOrderIDIgnoreNew & "," & sOrderID
Call document.WritePrivateProfileString("OrderID", "OrderIDCol",sOrderIDIgnoreNew, sOrderIDFile)
sOrderIDFile文件中的OrderIDCol的长度达到276后,再增加sOrderIDIgnoreNew长度保存时,就不能完全保存了。 只会更新最后几个字符。

我想问下,这个最大的长度能调整吗?

--  作者:bage
--  发布时间:2016/1/22 11:24:57
--  
我贴下代码吧:

Sub test_bzj()
sOrderIDIgnoreNew="-53203475,-53203473,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203471,12345678901234567890"
Call document.WritePrivateProfileString("OrderID", "OrderID",sOrderIDIgnoreNew, "C:\\test.ini")
sOrderIDIgnoreNew=document.GetPrivateProfileString("OrderID", "OrderID","1", "C:\\test.ini")
sOrderIDIgnoreNew=sOrderIDIgnoreNew & ",1111111"
Call document.WritePrivateProfileString("OrderID", "OrderID",sOrderIDIgnoreNew, "C:\\test.ini")
End Sub

执行test_bzj后,你会发现,文件中的字符长度被截断了。

应该是GetPrivateProfileString这个会截断字符

--  作者:yukizzc
--  发布时间:2016/1/22 12:10:33
--  

http://www.weistock.com/bbs/dispbbs.asp?BoardID=5&ID=10903&skin=0

看下这个写文件操作