VBMAN.ToolsStr - 字符串工具对象
概述
VBMAN.ToolsStr 提供了丰富的字符串处理功能,包括 GUID 生成、正则提取、编码转换、文本分割等。
方法
GetGUID
生成 GUID 字符串
vb
Public Function GetGUID(Optional isFull As Boolean) As String参数:
isFull- 是否返回完整格式(带大括号),默认 False
返回: GUID 字符串
示例:
vb
' 标准格式
Debug.Print VBMAN.ToolsStr.GetGUID()
' 输出: 550e8400-e29b-41d4-a716-446655440000
' 完整格式
Debug.Print VBMAN.ToolsStr.GetGUID(True)
' 输出: {550e8400-e29b-41d4-a716-446655440000}ParseNumbers
从字符串中提取数字
vb
Public Function ParseNumbers(inputString As String, Optional DecimalPlaces As Long = -1, Optional Count As Long) As Collection参数:
inputString- 输入字符串DecimalPlaces- 小数位数(-1 表示不处理)Count- 最大提取数量(0 表示不限制)
返回: 包含数字的 Collection
示例:
vb
Dim nums As Collection
Set nums = VBMAN.ToolsStr.ParseNumbers("价格: 123.45元,数量: 10个")
Dim i As Long
For i = 1 To nums.Count
Debug.Print nums(i)
Next i
' 输出: 123.45, 10SplitLinesToCollection
将文本分割为行集合
vb
Public Function SplitLinesToCollection(ByVal Text As String) As cCollection参数:
Text- 要分割的文本
返回: cCollection 集合,每行一个元素
示例:
vb
Dim lines As cCollection
Set lines = VBMAN.ToolsStr.SplitLinesToCollection("第一行" & vbCrLf & "第二行" & vbCrLf & "第三行")
Dim i As Long
For i = 1 To lines.Count
Debug.Print lines(i)
Next iJoinLinesFromCollection
将行集合合并为字符串
vb
Public Function JoinLinesFromCollection(Coll As cCollection) As String参数:
Coll- cCollection 集合
返回: 合并后的字符串
示例:
vb
Dim coll As New cCollection
coll.Add "Line 1"
coll.Add "Line 2"
coll.Add "Line 3"
Dim text As String
text = VBMAN.ToolsStr.JoinLinesFromCollection(coll)
' 结果: Line 1 & vbCrLf & Line 2 & vbCrLf & Line 3ToArray
将字符串转换为字符数组
vb
Public Function ToArray(Text As String) As String()参数:
Text- 输入字符串
返回: 字符数组
示例:
vb
Dim chars() As String
chars = VBMAN.ToolsStr.ToArray("Hello")
Dim i As Long
For i = LBound(chars) To UBound(chars)
Debug.Print chars(i)
Next i
' 输出: H, e, l, l, oSplitLines
将文本分割为行数组
vb
Public Function SplitLines(ByVal Text As String) As String()参数:
Text- 输入文本
返回: 字符串数组
示例:
vb
Dim lines() As String
lines = VBMAN.ToolsStr.SplitLines("第一行" & vbCrLf & "第二行")综合示例
示例1: 生成唯一标识
vb
Private Sub GenerateUniqueId()
' 生成订单号
Dim orderId As String
orderId = "ORD" & Replace(VBMAN.ToolsStr.GetGUID(), "-", "")
Debug.Print orderId
' 输出: ORD550e8400e29b41d4a716446655440000
End Sub示例2: 提取文本中的数据
vb
Private Sub ExtractData()
Dim text As String
text = "产品A: 价格 199.99元,库存 50件,销量 1000件"
Dim numbers As Collection
Set numbers = VBMAN.ToolsStr.ParseNumbers(text, 2) ' 保留2位小数
If numbers.Count >= 3 Then
Debug.Print "价格: " & numbers(1) ' 199.99
Debug.Print "库存: " & numbers(2) ' 50
Debug.Print "销量: " & numbers(3) ' 1000
End If
End Sub示例3: 处理多行文本
vb
Private Sub ProcessMultiLineText()
Dim inputText As String
inputText = "张三,25,北京" & vbCrLf & _
"李四,30,上海" & vbCrLf & _
"王五,28,广州"
' 分割为行
Dim lines As cCollection
Set lines = VBMAN.ToolsStr.SplitLinesToCollection(inputText)
' 处理每一行
Dim i As Long
For i = 1 To lines.Count
Dim parts() As String
parts = Split(lines(i), ",")
Debug.Print "姓名: " & parts(0) & ", 年龄: " & parts(1) & ", 城市: " & parts(2)
Next i
End Sub其他常用方法
根据源码,ToolsStr 还包含以下方法(部分):
| 方法 | 说明 |
|---|---|
IsEmptyEx | 检查字符串是否为空(扩展) |
TrimEx | 增强的 Trim 函数 |
PercentEncode | 百分号编码 |
PercentDecode | 百分号解码 |
UnicodeEncode | Unicode 编码 |
UnicodeDecode | Unicode 解码 |
HasStr | 检查是否包含子串 |
SubStr | 子串提取 |
GetRandStr | 生成随机字符串 |
最佳实践
- GUID 使用: 适合生成唯一标识,但不适合作为有序 ID
- 数字提取: 正则表达式提取,注意处理小数和科学计数法
- 文本分割: 处理不同换行符格式(\r\n, \n)
- 字符编码: 注意 VB6 内部使用 Unicode,但 IO 常使用 ANSI