科普;
.ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式,统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了。但在某些情况,还是要直接编辑ini才方便,一般只有很熟悉windows才能去直接编辑。
开始时用于WIN3X下面,WIN95用注册表代替,以及后面的内容表示一个节,相当于注册表中的键。
'---------------------------------------------------------------------------------------------
应用:
1、可用于用户名记录,即像QQ一样记住用户名和用户密码,下次打开软件,直接加载用户名,可解决用户使用时要输入重复输入用户名密码等操作
2、还可以记录软件自身的配置,下次打开直接加载
'---------------------------------------------------------------------------------------------
写入操作及文件展示:
读取及展示:
用法示例:
Dim a As New cls_ini
a.insert_ini("vb小源码公众号", "vb小源码公众号作者", "巴西_prince")
TextBox1.Text = a.getstr_ini("vb小源码公众号", "vb小源码公众号作者", "")
类文件源码:
Imports System.IO
Public Class cls_ini
''' <summary>
''' 定义获取ini整数型的ini值
''' </summary>
''' <param name="node_ini">节点名</param>
''' <param name="key_ini">配置项名</param>
''' <param name="get_value">要获得的值</param>
''' <param name="path_ini">文件路径</param>
''' <returns></returns>
''' <remarks></remarks>
Private Declare Function get_int_ini Lib "kernel32" Alias "GetPrivateProfileIntA" _
(ByVal node_ini As String, ByVal key_ini As String, ByVal get_value As Integer, ByVal _
path_ini As String) As Integer
''' <summary>
''' 定义获取ini字符串类型的值
''' </summary>
''' <param name="node_ini">节点名</param>
''' <param name="key_ini">配置项名</param>
''' <param name="get_value">要获得的值</param>
''' <param name="buf_value">获得缓冲值</param>
''' <param name="buf_length">获得缓冲值长度</param>
''' <param name="path_ini">文件路径</param>
''' <returns></returns>
''' <remarks></remarks>
Private Declare Function get_str_ini Lib "kernel32" Alias "GetPrivateProfileStringA" _
(ByVal node_ini As String, ByVal key_ini As String, ByVal get_value As String, ByVal _
buf_value As String, ByVal buf_length As Integer, ByVal path_ini As String) As Integer
''' <summary>
''' 定义向ini写入字符串值
''' </summary>
''' <param name="node_ini">节点名</param>
''' <param name="key_ini">配置项名</param>
''' <param name="set_value">要写入的值</param>
''' <param name="path_ini">文件路径</param>
''' <returns></returns>
''' <remarks></remarks>
Private Declare Function insetr_value_ini Lib "kernel32" Alias "WritePrivateProfileStringA" _
(ByVal node_ini As String, ByVal key_ini As String, ByVal set_value As String, ByVal path_ini _
As String) As Integer
''' <summary>
''' 从INI配置文件中获取类型为Int的配置项的值
''' </summary>
''' <param name="node_name">节点名</param>
''' <param name="key_Name">配置项名</param>
''' <param name="get_Value">获取值</param>
''' <returns></returns>
''' <remarks></remarks>
Public Function getint_ini(ByVal node_name As String, ByVal key_Name As String, ByVal get_Value As Integer) As Integer
getint_ini = get_int_ini(node_name, key_Name, get_Value, create_ini)
End Function
''' <summary>
''' 从INI配置文件中获取类型为string的配置项的值
''' </summary>
''' <param name="node_name">节点名</param>
''' <param name="key_Name">配置项名</param>
''' <param name="get_Value">获取值</param>
''' <returns></returns>
''' <remarks></remarks>
Public Function getstr_ini(ByVal node_name As String, ByVal key_Name As String, ByVal get_Value As String) As String
Dim buf_value As String
Dim get_str As Integer
buf_value = Space(256)
get_str = get_str_ini(node_name, key_Name, get_Value, buf_value, buf_value.Length, create_ini)
getstr_ini = Left(buf_value, InStr(buf_value, vbNullChar) - 1)
End Function
''' <summary>
''' 向INI配置文件中写入类型为string的配置项的值
''' </summary>
''' <param name="node_name">节点名</param>
''' <param name="keyName">配置项名</param>
''' <param name="set_value">设置值</param>
''' <returns></returns>
''' <remarks></remarks>
Public Function insert_ini(ByVal node_name As String, ByVal keyName As String, ByVal set_value As String) As Integer
Dim get_str As Integer
get_str = insetr_value_ini(node_name, keyName, set_value, create_ini)
If get_str Then
get_str = 1
End If
insert_ini = get_str
End Function
Private Function create_ini() As String
Dim path As String = ""
Dim fd_path As String = ""
fd_path = "C:\Users\" & Environment.UserName & "\AppData\Roaming\vb_小源码\"
path = "C:\Users\" & Environment.UserName & "\AppData\Roaming\vb_小源码\vb_小源码.ini"
If Directory.Exists(fd_path) = False Then Directory.CreateDirectory(fd_path)
If Not File.Exists(path) Then File.Create(path)
Return path
End Function
End Class