一个绝对经典的在VB中操作.ini文件的通用类源代码

原创 2004年02月01日 23:21:00

一个绝对经典的在VB中操作.ini文件的通用类源代码

(有需要源程序的,请在留言中留下电子邮件地址)

程序界面:

程序界面

源程序:

classIniFile.cls的内容:

Option Explicit

'--------classIniFile.cls  代码----------------
'这里定义了一个classIniFile类
'一个绝对经典的在VB中操作.ini文件的通用类源代码
'程序编写:中国青岛·许家国
'    2002.6.16
'E-Mail: goj2000@163.com
'HomePage: http://www.gojclub.com
'

'Private  member  that  holds  a  reference  to
'the  path  of  our  ini  file

Private strINI As String

'Windows  API  Declares
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" _
    (ByVal lpApplicationName As String, _
    ByVal lpKeyName As Any, _
    ByVal lpString As Any, _
    ByVal lpFileName As String) As Long

Private Declare Function GetPrivateProfileString _
    Lib "kernel32" Alias "GetPrivateProfileStringA" _
    (ByVal lpApplicationName As String, _
    ByVal lpKeyName As Any, _
    ByVal lpDefault As String, _
    ByVal lpReturnedString As String, _
    ByVal nSize As Long, _
    ByVal lpFileName As String) As Long

Private Function MakePath(ByVal strDrv As String, ByVal strDir As String) As String

    '  Makes  an  INI  file:  Guarantees  a  sub  dir
    Do While Right$(strDrv, 1) = "/"
          strDrv = Left$(strDrv, Len(strDrv) - 1)
    Loop
   
    Do While Left$(strDir, 1) = "/"
          strDir = Mid$(strDir, 2)
    Loop
   
    '  Return  the  path
    MakePath = strDrv & "/" & strDir
End Function

Private Sub CreateIni(strDrv As String, strDir As String)
    '  Make  a  new  ini  file
    strINI = MakePath(strDrv, strDir)
End Sub

Public Sub WriteIniKey(strSection As String, strKey As String, strValue As String)
    '  Write  to  strINI
    WritePrivateProfileString strSection, strKey, strValue, strINI
End Sub

Public Function GetIniKey(strSection As String, strKey As String) As String
    Dim strTmp As String
    Dim lngRet As String
    Dim I As Integer
    Dim strTmp2 As String
   
    strTmp = String$(1024, Chr(32))
    lngRet = GetPrivateProfileString(strSection, strKey, "", strTmp, Len(strTmp), strINI)
    strTmp = Trim(strTmp)
    strTmp2 = ""
    For I = 1 To Len(strTmp)
        If Asc(Mid(strTmp, I, 1)) <> 0 Then
            strTmp2 = strTmp2 + Mid(strTmp, I, 1)
        End If
    Next I
    strTmp = strTmp2
   
    GetIniKey = strTmp
End Function

Public Property Let INIFileName(ByVal New_IniPath As String)
    '  Sets  the  new  ini  path
    strINI = New_IniPath
End Property

Public Property Get INIFileName() As String
    '  Returns  the  current  ini  path
    INIFileName = strINI
End Property

'***************************************清除KeyWord"键"(Sub)***********************************************
Public Function DelIniKey(ByVal SectionName As String, ByVal KeyWord As String)
    Dim RetVal As Integer
    RetVal = WritePrivateProfileString(SectionName, KeyWord, 0&, strINI)
End Function

'如果是清除section就少写一个Key多一个""。
'**************************************清除 Section"段"(Sub)***********************************************
Public Function DelIniSec(ByVal SectionName As String)      '清除section
    Dim RetVal As Integer
    RetVal = WritePrivateProfileString(SectionName, 0&, "", strINI)
End Function

 

Form1中的内容:

Option Explicit

'一个绝对经典的在VB中操作.ini文件的通用类源代码示例程序
'程序编写:中国青岛·许家国
'    2002.6.16
'E-Mail: goj2000@163.com
'HomePage: http://www.gojclub.com

'定义一个.ini类型的变量
Dim DemoIni As New classIniFile

Private Sub Form_Load()
    '对控件进行初始化
    Text1.Text = "测试一下"
    List1.Clear
   
    '定义.ini文件名,并写入一些初始数据
    DemoIni.INIFileName = App.Path & "/demoini.ini"
    DemoIni.WriteIniKey "系统", "启动路径", App.Path
    DemoIni.WriteIniKey "系统", "可执行程序文件名", App.EXEName
   
    '显示保存到.ini文件中的数据
    Call CmdRead_Click
End Sub

'退出程序
Private Sub CmdExit_Click()
    Unload Me
End Sub

'读取.ini文件中已经存在的数据并显示出来
Private Sub CmdRead_Click()
    Dim TestStr As String
   
    List1.Clear
    TestStr = DemoIni.GetIniKey("系统", "启动路径")
    List1.AddItem "系统 - 启动路径: " & TestStr
    TestStr = DemoIni.GetIniKey("系统", "可执行程序文件名")
    List1.AddItem "系统 - 可执行程序文件名: " & TestStr
    TestStr = DemoIni.GetIniKey("用户自定义", "用户数据")
    List1.AddItem "用户自定义 - 用户数据: " & TestStr
End Sub

'保存用户自定义数据到.ini文件中
Private Sub CmdSave_Click()
    DemoIni.WriteIniKey "用户自定义", "用户数据", Text1.Text
   
    '显示保存到.ini文件中的数据
    Call CmdRead_Click
End Sub

'清除用户自定义段和段中数据
Private Sub CmdDelete_Click()
    DemoIni.DelIniKey "用户自定义", "用户数据"
    DemoIni.DelIniSec "用户自定义"
   
    '显示保存到.ini文件中的数据
    Call CmdRead_Click
End Sub

 

 

MFC中对INI文件的读写操作总结

在南京第二家公司刚接触到在MFC下读写INI配置文件,下面介绍一下关于如何去读写INI配置文件吧。 首先说明一下配置文件的格式: 例如: [COUNT] COUNT=6 [LONGIN] USER=...
  • songchao_2011
  • songchao_2011
  • 2013年12月29日 19:57
  • 1436

CCF 习题 201604-3 路径解析 (STL模拟)

题意不说了 思路: 先判断当前目录是不是绝对路径,就是开头不是/  那就不是绝对路径,就需要转换一下! 转换方法很简单,直接让当前目录加上目标目录即可! 然后是正则目录,可以用stringst...
  • aozil_yang
  • aozil_yang
  • 2016年09月07日 21:20
  • 1178

INI文件格式以及Java编码实现读取

INI是 initialization的缩写。INI文件是一种轻量级的配置文件,广泛地用于各种操作系统和软件中。INI文件是一种简单的文本文件,基本结构很简单、可读性高,必要的元素只有两种:secti...
  • ClementAD
  • ClementAD
  • 2015年07月31日 16:48
  • 5641

vb.net操作ini配置文件的类(源代码)

  • 2016年04月25日 14:12
  • 5KB
  • 下载

C++学习:一个通用ini配置文件操作类

在windows平台下,简单的程序可以通过ini文件实现简单的配置,简单适用。在win32 sdk还提供了相应的api来读取修改ini文件。ini配置文件格式为: [section] key=st...
  • KiteRunner
  • KiteRunner
  • 2012年09月30日 10:59
  • 2097

VB6: Ini文件操作类

Option Explicit '' INI文件读写Api Private Declare Function GetPrivateProfileString Lib "kernel32" Alias...
  • yao_yu_126
  • yao_yu_126
  • 2013年05月12日 20:30
  • 1687

一个封装好的ini文件操作类

  • 2012年10月23日 17:09
  • 3KB
  • 下载

VB操作INI文件读写示例

Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" ...
  • laotou99
  • laotou99
  • 2013年02月06日 16:12
  • 9692

VB6中一个非常好用的读写Ini文件的模块

VB6中一个非常好用的读写Ini文件的模块 新建模块(建议不使用注册表)   命名为rwini 'ini文件在有回车换行符会出错,经过测试,汉字要小于86字节,英言文要小于143字节才能返回列...
  • AwillAway
  • AwillAway
  • 2011年08月23日 22:18
  • 4328

轻松实现一个操作ini文件的类

作者:lixiaosan(CSDN)   前言:     相信很多朋友在编写自己的程序中,都需要把一些数据先期导入到程序中进行初始化。那么这个时候,比较好的做法就是把你所...
  • GZZXBCXM2005
  • GZZXBCXM2005
  • 2015年02月02日 14:30
  • 489
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一个绝对经典的在VB中操作.ini文件的通用类源代码
举报原因:
原因补充:

(最多只允许输入30个字)