Ini文件精解示例.docx
- 文档编号:28342017
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:28
- 大小:26.28KB
Ini文件精解示例.docx
《Ini文件精解示例.docx》由会员分享,可在线阅读,更多相关《Ini文件精解示例.docx(28页珍藏版)》请在冰豆网上搜索。
Ini文件精解示例
Ini文件精解示例
Ini,解示例,文件Ini,解示例,文件
1.'**************************************************************************
2.'**模块名:
INI文件操作-操作ini.bas
3.'**说 明:
4.'**创建人:
icecept(郭卫)
5.'**日 期:
2008-12-1500:
11:
06
6.'**修改人:
icecept(魔灵)
7.'**日 期:
2009-1-901:
20:
23
8.'**描 述:
icecept(魔灵)制作
9.'**版 本:
V1.0.0
10.'*************************************************************************
11.OptionExplicit
12.'读出自定义INI文件
13.PrivateDeclareFunctionGetPrivateProfileStringLib"kernel32"Alias"GetPrivateProfileStringA"(ByVallpApplicationNameAsString,ByVallpKeyNameAsAny,ByVallpDefaultAsString,ByVallpReturnedStringAsString,ByValnSizeAsLong,ByVallpFileNameAsString)AsLong
14.'写入自定义INI文件
15.PublicDeclareFunctionWritePrivateProfileStringLib"kernel32"Alias"WritePrivateProfileStringA"(ByVallpApplicationNameAsString,ByVallpKeyNameAsAny,ByVallpStringAsAny,ByVallpFileNameAsString)AsLong
16.'读出自定义INI文件中的单个区段间的所有键名和值
17.PublicDeclareFunctionGetPrivateProfileSectionLib"kernel32"Alias"GetPrivateProfileSectionA"(ByVallpAppNameAsString,ByVallpReturnedStringAsString,ByValnSizeAsLong,ByVallpFileNameAsString)AsLong
18.'读出自定义INI所有区段名
19.PublicDeclareFunctionGetPrivateProfileSectionNamesLib"kernel32.dll"Alias"GetPrivateProfileSectionNamesA"(ByVallpszReturnBufferAsString,ByValnSizeAsLong,ByVallpFileNameAsString)AsLong
20.'*************************************************************************
21.'**函数名:
GetIni
22.'**功能描述:
从自定义ini文件中读信息SectionName:
区段名KeyWord:
具体键名DefString:
读取失败后返回默认FileName:
ini文件所在路径
23.'**补 充:
读出的都是String类型的,如果你想读数字型的,可用VB的val()函数将其转化
24.'*************************************************************************
25.PublicFunctionGetIni(ByValSectionNameAsString,ByValKeyWordAsString,ByValDefStringAsString,ByValFileNameAsString)AsString
26. DimResultStringAsString*255
27. IfGetPrivateProfileString(ByValSectionName,ByValKeyWord,vbNullString,ByValResultString,ByValLen(ResultString),ByValFileName)>0Then'关键词的值不为空
28. GetIni=Left(ResultString,InStr(ResultString,Chr(0))-1)
29. Else '将缺省值写入INI文件
30. WritePrivateProfileStringSectionName,KeyWord,DefString,FileName
31. GetIni=DefString
32. EndIf
33.EndFunction
34.'*************************************************************************
35.'**函数名:
GetKeyWord
36.'**功能描述:
从自定义ini文件中得到键名和值
37.'** SectionName:
区段名 DefString:
默认值 FileName:
ini文件所在路径
38.'**补 充:
39.'*************************************************************************
40.PublicFunctionGetKeyWord(ByValSectionNameAsString,ByValDefStringAsString,ByValFileNameAsString)AsString
41. DimszBufAsString*255
42. IfGetPrivateProfileSection(ByValSectionName,ByValszBuf,Len(szBuf),ByValFileName)>0Then
43. '同时获取键名和值
44. GetKeyWord=Left(szBuf,InStr(szBuf,Chr(0))-1)
45. Else
46. WritePrivateProfileStringSectionName,DefString,vbNullString,FileName
47. GetKeyWord=DefString
48. EndIf
49.EndFunction
50.'*************************************************************************
51.'**函数名:
GetKey
52.'**功能描述:
从自定义ini文件中得到键名
53.'** SectionName:
区段名 DefString:
默认值 FileName:
ini文件所在路径
54.'**补 充:
55.'*************************************************************************
56.PublicFunctionGetKey(ByValSectionNameAsString,ByValDefStringAsString,ByValFileNameAsString)AsString
57. DimszBufAsString*255,ResultStringAsString
58. ResultString=GetKeyWord(ByValSectionName,ByValszBuf,ByValFileName)
59. IfInStr(ResultString,"=")<>0Then
60. GetKey=Left(ResultString,InStr(ResultString,"=")-1)
61. Else
62. GetKey=DefString
63. EndIf
64.EndFunction
65.
66.'**************************************************************************
67.'**模块名:
INI文件操作-frmINI
68.'**说 明:
69.'**创建人:
icecept(魔灵)
70.'**日 期:
2008-12-1500:
44:
23
71.'**修改人:
icecept(魔灵)
72.'**日 期:
2009-1-901:
20:
23
73.'**描 述:
icecept(魔灵)制作
74.'**版 本:
V1.0.0
75.'*************************************************************************
76.OptionExplicit
77.'读取test.ini 文件的值
78.PrivateSubCommand1_Click()
79. OnErrorResumeNext
80. DimRet1AsString,Ret2AsString
81. DimKey1AsString,Key2AsString
82. DimSectionArr()AsString,mAsInteger,LengthAsInteger
83. DimszBufAsString*255
84. '得到值 区段名,键名,读取失败时的默认值,文件名
85. Ret1=GetIni("a","b",vbNullString,App.Path&"\test.ini")
86. Ret2=GetIni("d","e",vbNullString,App.Path&"\test.ini")
87. '得到建名 区段名,键名, 文件名
88. Key1=GetKey("a",szBuf,App.Path&"\test.ini")
89. Key2=GetKey("d",szBuf,App.Path&"\test.ini")
90. '得到区段名 区段名 ,键名, 文件名
91. Length=GetPrivateProfileSectionNames(szBuf,Len(szBuf),App.Path&"\test.ini")
92. szBuf=Left(szBuf,Length)
93. SectionArr=Split(szBuf,vbNullChar)
94. '如果数组为空,说明ini文件是空文件,直接退出
95. IfUBound(SectionArr)>0Then
96. IfLen(Key1)=255Then
97. MsgBox"["&Split(szBuf,vbNullChar)(0)&"]"&vbCrLf&"["&Trim(Split(szBuf,vbNullChar)
(1))&"]"&"="&Ret2
98. Else
99. MsgBox"["&Split(szBuf,vbNullChar)(0)&"]"&vbCrLf&Key1&"="&Ret1&vbCrLf&"["&Trim(Split(szBuf,vbNullChar)
(1))&"]"&vbCrLf&Key2&"="&Ret2
100. EndIf
101. Else
102. MsgBox"ini文件是空的"
103. EndIf
104.EndSub
105.PrivateSubCommand10_Click()
106. '获取win.ini所有区段名
107. List1.Clear
108. DimszBufAsString,LengthAsInteger
109. DimSectionArr()AsString,mAsInteger
110. szBuf=String$(255,0)
111. Length=GetPrivateProfileSectionNames(szBuf,Len(szBuf),"c:
\windows\win.ini")
112. szBuf=Left(szBuf,Length)
113. SectionArr=Split(szBuf,vbNullChar)
114. Form=0ToUBound(SectionArr)
115. List1.AddItemSectionArr(m)
116. Nextm
117.EndSub
118.PrivateSubCommand11_Click()
119. '获取win.in某区段内所有键名和值的列表
120. List1.Clear
121. DimLengthAsInteger
122. DimSectionArr()AsString,mAsInteger
123. DimszBufAsString*255
124. Length=GetPrivateProfileSection("rBnwares",szBuf,Len(szBuf),"c:
\windows\win.ini")
125. szBuf=Left(szBuf,Length)
126. SectionArr=Split(szBuf,vbNullChar)
127. Form=0ToUBound(SectionArr)
128. List1.AddItemSectionArr(m)
129. Nextm
130.EndSub
131.PrivateSubCommand12_Click()
132. ' 区段名,键名,值,文件名
133. WritePrivateProfileString"a","b","c",App.Path&"\test.ini"
134. WritePrivateProfileString"d","e","f",App.Path&"\test.ini"
135.EndSub
136.PrivateSubCommand2_Click()
137. '修改键值
138. DimAAAsString
139. AA=InputBox("请输入新的a区段键名b下的值",Me.Caption)
140. IfAA<>vbNullStringThen
141. WritePrivateProfileString"a","b",AA,App.Path&"\test.ini"
142. MsgBox"修改成功"
143. EndIf
144.EndSub
145.PrivateSubCommand3_Click()
146. '删除a区段下的一个键名,删除键名后,键名下的值也会同时删除
147. ' 区段名键名
148. WritePrivateProfileString"a","b",vbNullString,App.Path&"\test.ini"
149.EndSub
150.PrivateSubCommand4_Click()
151. '删除整个区段,,删除区段后,区段下的键名和值也会同时删除
152. ' 区段名
153. WritePrivateProfileString"a",vbNullString,vbNullString,App.Path&"\test.ini"
154. WritePrivateProfileString"d",vbNullString,vbNullString,App.Path&"\test.ini"
155.EndSub
156.PrivateSubCommand5_Click()
157. '在win.ini中写入键值
158. DimAAAsString
159. AA=InputBox("请输入新值",Me.Caption)
160. IfAA<>vbNullStringThen
161. WritePrivateProfileString"rBnwares","Year",AA,"c:
\windows\win.ini"
162. WritePrivateProfileString"rBnwares","Month",AA,"c:
\windows\win.ini"
163. WritePrivateProfileString"rBnwares","Day",AA,"c:
\windows\win.ini"
164. MsgBox"修改成功"
165. EndIf
166.EndSub
167.PrivateSubCommand6_Click()
168. '读取数据 区段名 键名 默认值 文件名
169. MsgBoxGetIni("rBnwares","Year",vbNullString,"c:
\windows\win.ini")
170.EndSub
171.PrivateSubCommand7_Click()
172. '删除整个区段,,删除区段后,区段下的键名和值也会同时删除
173. ' 区段名, 文件名
174. WritePrivateProfileString"rBnwares",vbNullString,vbNullString,"c:
\windows\win.ini"
175.EndSub
176.PrivateSubCommand8_Click()
177. '获取键名
178. DimszBufAsString*255
179. ' 区段名, 键名, 文件名
180. MsgBoxGetKeyWord("rBnwares",szBuf,"c:
\windows\win.ini")
181.EndSub
182.PrivateSubCommand9_Click()
183. '获取键名
184. DimszBufAsString*255
185. ' 区段名, 键名, 文件名
186. MsgBoxGetKey("rBnwares",szBuf,"c:
\windows\win.ini")
187.EndSub
188.'写入test.ini 文件的值
189.PrivateSubForm_Load()
190.EndSub
191.'生成的test.ini文件格式:
192.'
193.'[a] a:
区段名
194.'b=c b:
键名 c:
值
195.'[d] d:
区段名
196.'e=f e:
键名 f:
值
197.'--------------------------------------------------------------------------------------
198.'操作ini文件的函数列表:
199.'只能操作win.ini的函数
200.'WriteProfileString在win.ini初始化文件指定小节内设置一个字串
201.'WriteProfileSection为win.ini初始化文件中一个指定的小节设置所有项名和值
202.'GetProfileInt取得win.ini初始化文件中指定条目的一个整数值
203.'GetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
204.'GetProfileString为win.ini初始化文件中指定的条目取得字串
205.'======================================================================================
206.'即能操作win.ini的函数,又能操作自定义ini
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Ini 文件 示例