Ini文件中是这样的内容,没有Section段
InputFilePath=D:\RenkeiPrm\inputfile
OutputFilePath=D:\RenkeiPrm\outputfile
BackupFilePath=D:\RenkeiPrm\backupfile
KeepBackupFile=30我在程序中这样写的
Private Declare Function GetPrivateProfileString Lib "kernel32" _
Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long, _
ByVal lpFileName As String) As LongINIfileName = App.Path & "\FILECHNG.INI"
strRet =space(255)
KeyName = "InputFilePath"
iSize = GetPrivateProfileString(vbNullString, KeyName, "",strRet , Len(strRet), INIfileName)
If iSize = 0 Then
strRet = "Not Found"
Else
strRet = Left(strRet , iSize)
End If
MsgBox (iSize & "," & strRet )为什么一直无法取到InputFilePath的值?
MSDN上说lpApplicationName为NULL的时候,可以取到所有的Section的值
可是这里我用遍了vbNullstring,vbNull,vbNullChar,0&,ByVal 0&
API的声明中改了ByVal lpApplicationName As String 为Any,Long都不行,无法取到值,为什么会出现这样的情况啊?
是不是strRet的长度设置太短或设置错误?
可是我把长度加大也是一样的情况,我都快急疯了,哪位老大可以帮我把问题解决啊?
注意:Section一定要为NULL,客户不想设置Section,指定Section的情况下我也能取到值
InputFilePath=D:\RenkeiPrm\inputfile
OutputFilePath=D:\RenkeiPrm\outputfile
BackupFilePath=D:\RenkeiPrm\backupfile
KeepBackupFile=30我在程序中这样写的
Private Declare Function GetPrivateProfileString Lib "kernel32" _
Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long, _
ByVal lpFileName As String) As LongINIfileName = App.Path & "\FILECHNG.INI"
strRet =space(255)
KeyName = "InputFilePath"
iSize = GetPrivateProfileString(vbNullString, KeyName, "",strRet , Len(strRet), INIfileName)
If iSize = 0 Then
strRet = "Not Found"
Else
strRet = Left(strRet , iSize)
End If
MsgBox (iSize & "," & strRet )为什么一直无法取到InputFilePath的值?
MSDN上说lpApplicationName为NULL的时候,可以取到所有的Section的值
可是这里我用遍了vbNullstring,vbNull,vbNullChar,0&,ByVal 0&
API的声明中改了ByVal lpApplicationName As String 为Any,Long都不行,无法取到值,为什么会出现这样的情况啊?
是不是strRet的长度设置太短或设置错误?
可是我把长度加大也是一样的情况,我都快急疯了,哪位老大可以帮我把问题解决啊?
注意:Section一定要为NULL,客户不想设置Section,指定Section的情况下我也能取到值
用API应该可以实现的吧,MSDN上都这样写了,可是我不知道我的写法错在哪
就无法通过调用GetPrivateProfileString,GetPrivateProfileSection,GetPrivateProfileInt……
等API来读取INI文件?确定吗?
没有Section标记的情况下是不是只能以普通文本文件的形式去读INI文件里的内容啊?
谢谢了
Public Function GetIni(ByVal psection As String, ByVal pfileName As String, ByVal pkey As String) As String
Dim x As Long, Buff As String * 128
Dim i As Integer
x = GetPrivateProfileStringByKeyName(psection, pkey, "", Buff, 128, pfileName)
i = InStr(Buff, Chr(0)) '去掉后面的空值
GetIni = Trim(left(Buff, i - 1))
End Function