gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
阅读:1576回复:4

VB经典:操作.ini文件的通用类源代码

楼主#
更多 发布于:2004-12-23 19:30
一个绝对经典的在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, _
喜欢0 评分0
GIS麦田守望者,期待与您交流。
zhuzhai
路人甲
路人甲
  • 注册日期2005-08-06
  • 发帖数12
  • QQ
  • 铜币130枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2005-08-12 23:36
谢谢!
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
2楼#
发布于:2004-12-23 19:31
'程序编写:中国青岛·许家国
  ' 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
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
3楼#
发布于:2004-12-23 19:31
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文件的通用类源代码示例程序

GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
4楼#
发布于:2004-12-23 19:31
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)
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
游客

返回顶部