读取ini文件请教,谢谢!!!
有a.ini:
[JCHTCS]
HX=19.26
HX0=370.755
HX1=385.2
HX2=529.65
HX3=674.1
HX4=818.55
HX5=57.36
HX6=1338.4
我是用下面代码读取的 Function GetFromINI(AppName As String, KeyName As String, FileName As String) As String
Dim RetStr As String
Dim i As Long
RetStr = String(255, Chr(0))
GetFromINI = Left(RetStr, GetPrivateProfileString(AppName, ByVal KeyName, "", RetStr, Len(RetStr), FileName))
i = InStr(1, GetFromINI, Chr$(0))
If i <> 0 Then
GetFromINI = Mid(GetFromINI, 1, i - 1)
End If
End FunctionPrivate Sub Command1_Click()
HTFS(0) = Val(GetFromINI("JCHTCS", "HX", App.Path & "\datini\A.INI"))
HTFS(1) = Val(GetFromINI("JCHTCS", "HX0", App.Path & "\datini\A.INI"))
HTFS(2) = Val(GetFromINI("JCHTCS", "HX1", App.Path & "\datini\A.INI"))
HTFS(3) = Val(GetFromINI("JCHTCS", "HX2", App.Path & "\DATINI\A.INI"))
HTFS(4) = Val(GetFromINI("JCHTCS", "HX3", App.Path & "\DATINI\A.INI"))
HTFS(5) = Val(GetFromINI("JCHTCS", "HX4", App.Path & "\DATINI\A.INI"))
HTFS(6) = Val(GetFromINI("JCHTCS", "HX5", App.Path & "\DATINI\A.INI"))
HTFS(7) = Val(GetFromINI("JCHTCS", "HX6", App.Path & "\DATINI\A.INI"))
End Sub求教在不知道有几项的情况下,如何读取到数组,谢谢!!!
有a.ini:
[JCHTCS]
HX=19.26
HX0=370.755
HX1=385.2
HX2=529.65
HX3=674.1
HX4=818.55
HX5=57.36
HX6=1338.4
我是用下面代码读取的 Function GetFromINI(AppName As String, KeyName As String, FileName As String) As String
Dim RetStr As String
Dim i As Long
RetStr = String(255, Chr(0))
GetFromINI = Left(RetStr, GetPrivateProfileString(AppName, ByVal KeyName, "", RetStr, Len(RetStr), FileName))
i = InStr(1, GetFromINI, Chr$(0))
If i <> 0 Then
GetFromINI = Mid(GetFromINI, 1, i - 1)
End If
End FunctionPrivate Sub Command1_Click()
HTFS(0) = Val(GetFromINI("JCHTCS", "HX", App.Path & "\datini\A.INI"))
HTFS(1) = Val(GetFromINI("JCHTCS", "HX0", App.Path & "\datini\A.INI"))
HTFS(2) = Val(GetFromINI("JCHTCS", "HX1", App.Path & "\datini\A.INI"))
HTFS(3) = Val(GetFromINI("JCHTCS", "HX2", App.Path & "\DATINI\A.INI"))
HTFS(4) = Val(GetFromINI("JCHTCS", "HX3", App.Path & "\DATINI\A.INI"))
HTFS(5) = Val(GetFromINI("JCHTCS", "HX4", App.Path & "\DATINI\A.INI"))
HTFS(6) = Val(GetFromINI("JCHTCS", "HX5", App.Path & "\DATINI\A.INI"))
HTFS(7) = Val(GetFromINI("JCHTCS", "HX6", App.Path & "\DATINI\A.INI"))
End Sub求教在不知道有几项的情况下,如何读取到数组,谢谢!!!
解决方案 »
- vb怎样向手机发送消息?
- Mid函数与Mid$函数的区别?
- 更改彩虹加密狗IKEY 1000的SOPIN密码后打不开了,在线等,快来救命啊!!!
- dll返回值类型是handle,我在vb中该怎样声明?
- MSHFlexGrid数据格式问题
- 大家看看这句对吗? rsPSum.Open "SELECT * FROM 到期应收款提示 WHERE house_address like '%" & rsHouse.Fields("house_address").Val
- 给时间控件赋值,出现了错误.
- 有关”钩子“程序的问题
- 请问DBGrid 如何绑定?
- 问?
- 关于DO和FOR套嵌的问题,错误1004
- VB conmmand 变色问题
Private Sub Command1_Click()
'通过动态数组读取
Dim HTFS() As String
ReDim HTFS(1000)
Dim i As Long, s As String
i = 1
HTFS(0) = Val(GetFromINI("JCHTCS", "HX", App.Path & "\datini\A.INI"))
Do
s = Trim$(Val(GetFromINI("JCHTCS", "HX" & Trim$(CStr(i)), App.Path & "\datini\A.INI")))
If (Len(s) = 0) Then
ReDim Preserve HTFS(i - 1) '改变数组上界
Exit Do
End If
HTFS(i) = s
i = i + 1
Loop
End Sub
Private Sub Form_Load()
Dim myKey As String, mykeyG() As String
myKey = String(512, Chr(32))
GetPrivateProfileString "显示统计线", vbNullString, "", myKey, Len(myKey), "c:\setup.ini"
myKey = Trim(myKey)
mykeyG = Split(myKey, Chr(0))
ReDim Preserve mykeyG(UBound(mykeyG) - 2) '所有key名在这个mykeyG数组里
stop
End Sub
我想取得"="后面的,该如何做,谢谢!!!
另:myKey = Trim(myKey)是不是取得"显示统计线"下的所有子项,谢谢!!!
Private Sub Form_Load()
Dim myKey As String, mykeyG() As String
myKey = String(512, Chr(32))
GetPrivateProfileString "显示统计线", vbNullString, "", myKey, Len(myKey), "c:\setup.ini"
myKey = Trim(myKey)
mykeyG = Split(myKey, Chr(0))
ReDim Preserve mykeyG(UBound(mykeyG) - 2) '所有key名在这个mykeyG数组里
stop
End Sub
Public Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long这个函数可取回一个段(例如[JCHTCS]下)所有的Key及其值。lpReturnedString 将返回用 Null (CHR(0)) 分隔的键名和值项,最后一个用双 Null 结束。每一项的格式为:
key=string
2、是取得"显示统计线"下的所有键名(不含值)。GetPrivateProfileString不能得到=后面的值off123提供的GetPrivateProfileSection可以获得小节下的每一项的全部内容,即 keyname=value
,然后再去处理等号前后的值;Option Explicit
Private Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As LongPrivate Sub Form_Load()
Dim myKey As String, mykeyG() As String
myKey = String(1024, Chr(32))
GetPrivateProfileSection "显示统计线", myKey, 1024, "c:\setup.ini"
myKey = Trim(myKey)
mykeyG = Split(myKey, Chr(0)) '显示统计线小节下的所有内容
ReDim Preserve mykeyG(UBound(mykeyG) - 2) '所有key名=值在这个mykeyG数组里
Stop
End Sub
1、有了键名,可以再用键名去调用你的GetFromINI获得键值(=后面的值)。