65.9K
CodeProject 正在变化。 阅读更多。
Home

VB6 应用程序设置的高级集合

starIconstarIconstarIconemptyStarIconemptyStarIcon

3.00/5 (2投票s)

2008 年 4 月 29 日

GPL3

3分钟阅读

viewsIcon

56081

downloadIcon

1539

用于VB6应用程序设置的高级集合(类似于ASP.NET的名称/值集合)

引言

在本文中,我尝试实现以下内容

  1. 将应用程序配置数据和设置作为名称值集合进行操作
  2. 提供高级的 GetSetting SaveSetting 函数
  3. 提供高级的INI文件处理
  4. 实现用于设置的转义序列字符

背景

VB6为程序员提供了 GetSetting SaveSetting 函数来操作应用程序设置。这些设置存储在 Windows 注册表的 HKEY_CURRENT_USER \ Software \ VB and VBA Program Settings\ 位置。

缺点

  1. 请注意,这些设置存储在注册表的当前用户设置下。因此,在多用户Windows系统中,每个用户可能都有不同的设置。
  2. 由于Windows的速度也取决于Windows注册表的大小,我们不能在注册表中存储大量的信息。
  3. 将配置数据从一台机器移动到另一台机器非常困难。
    请注意,早期版本的Windows提供了两个函数,即
    getprivateprofilestring, writeprivateprofilestring 用于通过使用文件来操作应用程序数据。但微软声明:“此功能仅用于与基于16位Windows的应用程序兼容。基于Win32的应用程序应将初始化信息存储在注册表中。”

    因此,我在VB6中实现了名称值集合,以从文本文件中读取和写入应用程序的设置,这样我们就可以轻松地将应用程序从一台机器移动到另一台机器。

Using the Code

'Assigns filename to collection to perform operation
Settings.FileName = "ConverterSettings.ini"

'Load collection items from file 
Settings.LoadContents

'Save collection to file
Settings.SaveCollectionToFile

'Add / Modify an item
CollectionName("Name/Key") = value

'Remove an item
CollectionName.Remove(index / Key)

'Replacement of GetSetting function
Public Function GetMySetting(AppName As String, Section As String, _
            Key As String, Optional Default As String) As String
    GetMySetting = Settings.GetItem(AppName & "_" & Section & "_" & Key,_
              , Default)
End Function

'Replacement of SaveSetting function
Public Function SaveMySetting(AppName As String, Section As String, _
            Key As String, Setting As String)
    Settings(AppName & "_" & Section & "_" & Key) = Setting
End Function

在类模块上实现的函数列表及其含义

名称 用法 范围 类型
ProcessEscapeSequence 转换转义序列字符 Private 函数
ProcessINIContents 将文件内容解析为字符串行 Private 子程序
ProcessLine 从文件行加载键和值 Private 子程序
Add 将新项添加到集合 Public 函数
Count 返回集合中的项目数 Public 属性获取
GetItem 从集合中安全地读取一个项目 Public 函数
LoadContents 从文件加载集合 Public 函数
移除 从集合中删除一个项目 Public 子程序
SaveCollectionToFile 将集合的内容保存到文件中 Public 函数

关注点

我添加了一个模块,该模块使用适当的状态代码处理文件和 Windows 操作。

名称 用法 范围 类型
ExplorerOpen 在资源管理器中打开文件 Public 子程序
ExplorerShowFile 在资源管理器中定位文件 Public 子程序
FileAppend 将信息追加到文件 Public 函数
FileAppendString 将字符串追加到文件 Public 函数
FileExists 检查文件是否存在于特定位置 Public 函数
FileKillSafe 从磁盘中删除文件 Public 函数
FileMakeString 用字符串替换文件内容 Public 函数
FileRead 将文件内容读取为字节数组 Public 函数
FileReadString 以字符串格式读取文件的内容 Public 函数
FileStore 将二进制信息(字节数组)存储到文件中 Public 函数
FillCombo 从文件内容字符串填充组合框 Public 子程序
FolderExists 检查文件夹是否存在于给定路径中 Public 函数
FolderKill 删除此目录及其包含的所有子文件夹。 Public 函数
GetMySetting GetSetting 函数的替代品 Public 函数
PathFileName 获取完整文件路径的文件名部分 Public 函数
PathParent 获取父文件夹名称 Public 函数
PathRemoveSlash 从最右端删除斜杠 Public 函数
ProcessExecuteandWait 执行文件并等待其完成 Public 函数
SaveMySetting SaveSetting 函数的替代品 Public 函数
StringStripNull 返回一个不带 chr$(0) 终止符的字符串。 Public 函数
WindowsTemporaryFolder 获取 Windows 临时文件夹路径 Public 函数

历史

  • 版本1于2008年4月20日发布
© . All rights reserved.