请问vb.net 中怎么操作ini文件?

gy123_79 2003-06-09 12:08:44
在线等待!
...全文
338 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChenHaiHua 2003-06-09
  • 打赏
  • 举报
回复
源码奉送
'读取配置文件信息
Private Declare Unicode Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringW" (ByVal lpApplicationName As String, _
ByVal lpKeyName As String, ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize As Int32, _
ByVal lpFileName As String) As Int32
'写配置文件信息
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Int32

'读INI文件
Private Shared Function GetFromINI(ByVal SectionHeader As String, ByVal VarName As String, ByVal filename As String) As String
Dim RetStr As String
RetStr = Space$(255)
Dim i As Int32
i = GetPrivateProfileString(SectionHeader, VarName, "", RetStr, 255, filename)
Return RetStr
End Function

'读取已经设置好的信息
Public Shared Sub GetSysIni()
SERVER_NAME = GetFromINI("SERVER", "SERVERNAME", Application.StartupPath + "\Ini\SysConfig.ini")
DB_NAME = GetFromINI("SERVER", "DBNAME", Application.StartupPath + "\Ini\SysConfig.ini")
End Sub

'读打印机的设置
Public Shared Sub GetComSetup()
COM = GetFromINI("PRINTER", "COM", Application.StartupPath + "\Ini\SysConfig.ini")
End Sub

'保存COM口的设置
Public Shared Sub WriteComSetup(ByVal strCom As String)
WritePrivateProfileString("PRINTER", "COM", strCom, Application.StartupPath + "\Ini\SysConfig.ini")
End Sub
ChenHaiHua 2003-06-09
  • 打赏
  • 举报
回复
和VB6中的操作是一样的,不过注意的是要把VB6中的LONG型改为INT32
lihonggen0 2003-06-09
  • 打赏
  • 举报
回复
实例67:读写INI文件
实例说明
在本实例中,我们将应用VB.NET制作一个能够实现读写INI文件的应用程序。程序运行结果如图67-1所示。

图67-1 运行结果
技术要点
 INI文件的格式
 GetPrivateProfileInt()和GetPrivateProfileString()函数
 WritePrivateProfileString()函数
实现步骤
■ 新建项目
打开Visual Studio.NET,选择“新建项目”,在项目类型窗口中选择“Visual Basic项目”,在模板窗口中,选择“Windows应用程序”,在名称域中输入“RWIni”,然后选择保存路径。单击“确认”。
■ 添加控件和菜单
向当前窗体上添加两个Button控件,用于控制读写INI文件;一个Group控件和两个RadioButton控件,用于控制读写整型数据还是字符串型;三个Label控件和三个TextBox控件,用于标注和输入节名、键名和值;其余两个Label控件,一个表示当前打开的文件名,另一个表示读写的状态。最后添加一个MainMenu控件,生成菜单“文件”、“退出”,其中“文件”下有一个子菜单“打开INI文件”。
■ 设置属性
切换到“属性栏”,对窗体上的控件设置属性。详细情况见表67-1。
表67-1 窗体各控件的属性值
窗体/控件 属性 值
optInt value True
Lablel5 Name Lblfilename
Autosize true
BackSytle 0-Transparent
Button1 Text 读取
BackColor &H0080C0FF
Style 1-Graphic
TextBox1 Name txtSection
Text (空)
知识点:一个INI文件由若干节(Section)组成,每个节中又由若干个关键字(Keyword)和值组成。关键字是用来保存独立的程序设置和那些重要信息的,用于控制应用程序的某个功能;值可以是整型数或字符串。如果值为空,则表示应用程序已经为该关键字指定了缺省值。
INI文件的一般形式如下:
…………
[Section]
keyword=value
…………
INI文件有严格的格式要求:
(1)节名必须加“[”和“]”。
(2)对文件做注释,要以“;”开头。
(3)关键字后必须有“=”。
■ 添加代码
keywordinfo = txtkeyword.Text
Valueinfo = txtvalue.Text
' 检查输入是否合法,不合法时,提示警告信息。
' 读取INI文件的内容
Private Sub Button1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Button1.Click
Dim readinfo As String
Dim buffer As VB6.FixedLengthString = New VB6.FixedLengthString(255)
Dim Sectioninfo As String
Dim Valueinfo As String
Dim keywordinfo As String
Sectioninfo = txtsection.Text
If Trim(Sectioninfo) = "" Then ' 在此可以用len(Sectioninfo)=0来代替
MsgBox("请输入节名(Section)", MsgBoxStyle.OKOnly, "错误信息")
Exit Sub
End If
If Trim(keywordinfo) = "" Then
MsgBox("请输入关键字(Keyword)", MsgBoxStyle.OKOnly, "错误信息")
Exit Sub
End If
' 判断读取的是数字还是字符串
If optint.Checked Then
' 使用 GetPrivateProfileInt函数取回一个关键字的整型数值
readinfo = CStr(GetPrivateProfileInt(Sectioninfo, keywordinfo, -1, AXCommonDialog1.FileName))
' GetPrivateProfileInt函数返回取得的值,如果键没有找到,则返回由nDefault参数指定的值
If CDbl(readinfo) = -1 Then
txtvalue.Text = "读取失败!"
Else
txtvalue.Text = readinfo
End If
Else
' 使用 GetPrivateProfileString函数取回一个关键字的字符串数值
readinfo = CStr(GetPrivateProfileString(Sectioninfo, keywordinfo, "没有找到相对应的键值", buffer.Value, 255, AXCommonDialog1.FileName))
' GetPrivateProfileString函数返回放入lpReturnedString缓冲区的字节数,
' 键值放在由参数lpReturnedString指定的缓冲区中。该缓冲区是一个由nSize字节大小的固定字符串
If readinfo = "没有找到相对应的键值" Then
txtvalue.Text = "读取失败!"
Else
txtvalue.Text = VB.Left(buffer.Value, CInt(readinfo))
End If
End If
End Sub
' 写入INI文件
Private Sub Button2_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Button2.Click
Dim writeinfo As Boolean
Dim buffer As VB6.FixedLengthString = New VB6.FixedLengthString(255)
Dim Sectioninfo As Object
Dim Valueinfo As String
Dim keywordinfo As String
Sectioninfo = txtsection.Text
keywordinfo = txtkeyword.Text
Valueinfo = txtvalue.Text
' 使用更新给定节中的新键值,或创建一个新键值,
' 或用来删除一个节或键值
writeinfo = WritePrivateProfileString(Sectioninfo, keywordinfo, Valueinfo, AXCommonDialog1.FileName)
' 注意,WritePrivateProfileString函数设置成功,返回值为True,否则返回False
If writeinfo = True Then
Label4.Text = "写入INI文件成功!"
Else
Label4.Text = "错误!不能写入INI文件!"
End If
End Sub
' 打开INI文件
Public Sub mnuOpenINIFile_Popup(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles mnuOpenINIFile.Popup
mnuOpenINIFile_Click(eventSender, eventArgs)
End Sub
Public Sub mnuOpenINIFile_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles mnuOpenINIFile.Click
' 设置过滤器
AXCommonDialog1.Filter = "*.INI|*.ini"
AXCommonDialog1.ShowOpen()
If Len(AXCommonDialog1.FileName) = 0 Then Exit Sub
' 打开有效文件后,按钮可用
Button1.Enabled = True
Button2.Enabled = True
' 显示当前打开的文件名
lblfilename.Text = "现在打开的文件是:" & AXCommonDialog1.FileName
End Sub
■ 运行程序
单击菜单“调试|启动”或单击 图标运行程序。
小结
INI文件是包含了应用程序特定信息的文本文件。比如将用户所作的选择以及各种变化的系统信息记录在INI文件中,通常是在应用程序运行时读取INI文件中的信息,退出应用程序时保存用户对运行环境的某些修改。

16,556

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧