VB6 Perl HASH 功能
在 VB6 IDE 和运行时实现 Perl HASH 功能

引言
我发现了一种有用的方法来使用可以在 IDE 中引用并在编码逻辑中使用的枚举。 枚举在返回哈希值时也很有用。 我使用的简单方法可以在 VB 中模仿 Perl 哈希功能,此外,所有公共枚举都可以在 IDE 中为对象引用。
我需要一种方法来为 HTTP 协议包装器返回字符串。 有很多事情需要记住。 当我找到这种使用枚举访问 HASH 字符串的方法时,我就知道这是正确的方法。
Using the Code
访问枚举的 HASH 值。 (在框中放入一个枚举值,然后单击 > 按钮。)外部方法将枚举的哈希和索引作为字符串传递。
Private Function GetHashElement(hash As String, hash_enum As String) As String
Dim loc As Long Dim table() As String
loc = InStr(1, hash, hash_enum, vbTextCompare)
If loc > 0 Then
table = Split(Right(hash, Len(hash) - (loc - 1)), ",")
Debug.Print table(0)
Else
'error: does not exist
End If
GetHashElement = table(0)
ReDim table(0) As String
End Function
更新
将以实际应用程序中的使用形式进行。
关注点
使用枚举子类型将在大量引用不同枚举值的代码中实现更高的可读性。
通过使用枚举作为 HASH 索引,可以访问枚举的字符串(在此演示中,它们是原因),因此无需在参考书中摸索硬编码错误。 同样,可以使用枚举在运行时访问原因短语,以从 HASH 中获取它们。 用途适用于包装枚举和方法的类对象。 这只是一个演示,并没有充分强调在编码外部逻辑和引用时提供枚举表的优势。
要获取并测试 IDE 枚举,请使用 HASH 和枚举创建一个新的类对象。 将 GetHash 方法作为私有方法放入对象中,并创建一个公共方法来使用它。 保存类对象,然后将其添加到您的项目中。 删除 form_1 中的任何重复枚举,并声明一个变量 AS 枚举子类型。 之后,在 IDE 中硬编码此变量的任何引用(如构建方法时)都将按其名称显示枚举的引用,而不是它们的枚举。 可以调用公共方法,将值作为枚举的子类型传递,然后可以将其转换为字符串并用于在 GetHash 方法中索引 HASH。 为了提高可读性,在开发源代码期间,任何硬编码为枚举类型的值都会被赋予实际的枚举字符串。 枚举的字符串值位于您的源代码列表中。
Dim code as status_code
code
= (此时在光标下显示要选择的枚举列表)如果您希望返回 OK 响应,请选择“OK”。 选择“未找到”以返回 404 错误状态。 您看,这种方法使您可以实际编码 HTTP 服务器响应而不会发疯。
我考虑过使用另一个 INSTR 搜索来查找第二个分隔符,但在这里使用 SPLIT 函数可能同样有效。 对于非常长的哈希,这将改变。 您可以扩展此方法以满足您的需求。 例如,您可能希望将来可以使用不同的分隔符在字段中包含逗号。 此外,您可以在 HASH 字符串的开头添加一个逗号,以在拆分之前创建一个空字段。 然后使用此字段在分隔的表中添加一个条目。
感谢您阅读我的文章。
历史
- 2003 年 12 月 5 日:首次发布