欢迎光临散文网 会员登陆 & 注册

VB READ INT AND WRITE INI

2023-06-03 15:10 作者:MMCjelly  | 我要投稿

Imports System.IO Module iniFile   ' 定义一个函数,用来读取ini文件中的指定键值   Function ReadIni(ByVal fileName As String, ByVal section As String, ByVal key As String) As String     ' 创建一个StreamReader对象,打开ini文件     Using sr As StreamReader = New StreamReader(fileName)       Dim line As String ' 用来存储每一行的文本       Dim foundSection As Boolean = False ' 用来标记是否找到了目标节       ' 逐行读取文件,直到找到目标键或者文件结束       line = sr.ReadLine()       While (line <> Nothing)         ' 去掉行首和行尾的空白字符         line = line.Trim()         ' 如果是节名称,判断是否是目标节         If line.StartsWith("[") And line.EndsWith("]") Then           If line.Equals("[" & section & "]") Then             foundSection = True ' 找到了目标节           Else             foundSection = False ' 找到了其他节,跳过           End If         ElseIf foundSection Then ' 如果已经找到了目标节,继续查找目标键           ' 用等号分割键和值           Dim parts() As String = line.Split("=")           If parts.Length = 2 Then ' 如果有且只有一个等号,说明是有效的键值对             Dim k As String = parts(0).Trim() ' 键             Dim v As String = parts(1).Trim() ' 值             If k.Equals(key) Then ' 如果键匹配,返回值并结束函数               Return v             End If           End If         End If         ' 读取下一行         line = sr.ReadLine()       End While     End Using     ' 如果没有找到目标键,返回空字符串     Return ""   End Function   ' 定义一个函数,用来写入ini文件中的指定键值   Sub WriteIni(ByVal fileName As String, ByVal section As String, ByVal key As String, ByVal value As String)     ' 创建一个临时文件名,用来存储修改后的内容     Dim tempFile As String = Path.GetTempFileName()     ' 创建一个StreamWriter对象,打开临时文件     Using sw As StreamWriter = New StreamWriter(tempFile)       ' 创建一个StreamReader对象,打开ini文件       Using sr As StreamReader = New StreamReader(fileName)         Dim line As String ' 用来存储每一行的文本         Dim foundSection As Boolean = False ' 用来标记是否找到了目标节         Dim writtenKey As Boolean = False ' 用来标记是否写入了目标键值对         ' 逐行读取文件,直到文件结束或者写入了目标键值对         line = sr.ReadLine()         While (line <> Nothing)           ' 去掉行首和行尾的空白字符           line = line.Trim()           ' 如果是节名称,判断是否是目标节或者其他节           If line.StartsWith("[") And line.EndsWith("]") Then             If Not writtenKey And foundSection Then                ' 如果还没有写入目标键值对,并且已经找到了目标节,               ' 那么在当前节的末尾写入目标键值对,并标记为已写入。               sw.WriteLine(key & "=" & value)               writtenKey = True              End If             If line.Equals("[" & section & "]") Then                foundSection = True ' 找到了目标节              Else                foundSection = False ' 找到了其他节              End If             sw.WriteLine(line) ' 将当前行写入临时文件           ElseIf foundSection Then ' 如果已经找到了目标节,继续查找目标键             ' 用等号分割键和值             Dim parts() As String = line.Split("=")             If parts.Length = 2 Then ' 如果有且只有一个等号,说明是有效的键值对               Dim k As String = parts(0).Trim() ' 键               Dim v As String = parts(1).Trim() ' 值               If k.Equals(key) Then ' 如果键匹配,修改值并标记为已写入                 sw.WriteLine(key & "=" & value)                 writtenKey = True               Else ' 如果键不匹配,保持原样                 sw.WriteLine(line)               End If             Else ' 如果不是有效的键值对,保持原样               sw.WriteLine(line)             End If           Else ' 如果还没有找到目标节,保持原样             sw.WriteLine(line)           End If           ' 读取下一行           line = sr.ReadLine()         End While         If Not writtenKey Then            ' 如果还没有写入目标键值对,说明目标节不存在或者目标键不存在,           ' 那么在文件的末尾创建目标节并写入目标键值对。           sw.WriteLine()           sw.WriteLine("[" & section & "]")           sw.WriteLine(key & "=" & value)         End If       End Using     End Using     ' 删除原始文件,并将临时文件重命名为原始文件名     File.Delete(fileName)     File.Move(tempFile, fileName)   End Sub End Module

VB READ INT AND WRITE INI的评论 (共 条)

分享到微博请遵守国家法律