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





3.00/5 (2投票s)
用于VB6应用程序设置的高级集合(类似于ASP.NET的名称/值集合)
引言
在本文中,我尝试实现以下内容
- 将应用程序配置数据和设置作为名称值集合进行操作
- 提供高级的
GetSetting
和SaveSetting
函数 - 提供高级的INI文件处理
- 实现用于设置的转义序列字符
背景
VB6为程序员提供了 GetSetting
和 SaveSetting
函数来操作应用程序设置。这些设置存储在 Windows 注册表的 HKEY_CURRENT_USER \ Software \ VB and VBA Program Settings\ 位置。
缺点
- 请注意,这些设置存储在注册表的当前用户设置下。因此,在多用户Windows系统中,每个用户可能都有不同的设置。
- 由于Windows的速度也取决于Windows注册表的大小,我们不能在注册表中存储大量的信息。
- 将配置数据从一台机器移动到另一台机器非常困难。
请注意,早期版本的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日发布