这个问题很有意思,上网搜索了下也没有什么好的解决办法,最后我自己想了个办法解决了,在这和大家分享下:
在VB中,用GetPrivateProfileString函数可以读取ini文件中的相关配置信息,当读取出信息后,如果我们需要读取字符串的长度或是对字符串进一步处理(比如对字符串进行MD5加密),这时麻烦就来了。
Dim strName As String * 255
GetPrivateProfileString "General", "LastUserName", "", strName, 255, App.Path & "\linkageclientconfig.ini"
MsgBox Len(Trim(strName))
如果原来配置文件中相对应的字符串为"EddyBlog2009",那么你是不是认为Len(Trim(strName))会返回12呢?
答案是不会返回12,而是返回255。如果我们对读取字符串进行MD5加密,MD5(Trim(strName))与MD5("EddyBlog2009")也不会相等。
有人说这样能解决问题
Dim strName As String
strName = Space(255)
GetPrivateProfileString "General", "LastUserName", "", strName, 255, App.Path & "\linkageclientconfig.ini"
MsgBox Len(Trim(strName))
我测试了下,这样也不行,返回值会是13,而不是12。
我的解决办法:
如果你只需要获取字符串长度,那可以利用GetPrivateProfileString函数的返回值直接获取,这样最简单。
如果你需要像上面说的进行MD5加密,那么可采用如下办法:
Dim strName As String
strName = Space(255)
GetPrivateProfileString "General", "LastUserName", "", strName, 255, App.Path & "\linkageclientconfig.ini"
Text1 = strName
MD5(Text1)
这样MD5(Text1)=MD5("EddyBlog2009"),利用文本框控件中转一下,那么就会得到你想要的结果了^_
已经有(1)位网友发表了评论,你也评一评吧!
原创文章如转载,请注明:转载自Eddy Blog
原文地址:http://www.rrgod.com/program/326.html 欢迎订阅Eddy Blog。
x,你第一段代码和第二段代码写的一样!
GetPrivateProfileString 会返回一个整数,是实际读入的字符数。
i = GetPrivateProfileString "General", "LastUserName", "", strName, 255, App.Path
left(strName, i)
由 Eddy 于 2010-11-24 16:05:16 最后编辑