VBMAN.ToolsStr - String Tool Object
Overview
VBMAN.ToolsStr provides rich string processing functions, including GUID generation, regex extraction, encoding conversion, text splitting, etc.
Methods
GetGUID
Generate GUID string
vb
Public Function GetGUID(Optional isFull As Boolean) As StringParameters:
isFull- Whether to return full format (with braces), default False
Returns: GUID string
Example:
vb
' Standard format
Debug.Print VBMAN.ToolsStr.GetGUID()
' Output: 550e8400-e29b-41d4-a716-446655440000
' Full format
Debug.Print VBMAN.ToolsStr.GetGUID(True)
' Output: {550e8400-e29b-41d4-a716-446655440000}ParseNumbers
Extract numbers from string
vb
Public Function ParseNumbers(inputString As String, Optional DecimalPlaces As Long = -1, Optional Count As Long) As CollectionParameters:
inputString- Input stringDecimalPlaces- Decimal places (-1 means no processing)Count- Maximum extraction count (0 means no limit)
Returns: Collection containing numbers
Example:
vb
Dim nums As Collection
Set nums = VBMAN.ToolsStr.ParseNumbers("Price: 123.45 yuan, Quantity: 10 pieces")
Dim i As Long
For i = 1 To nums.Count
Debug.Print nums(i)
Next i
' Output: 123.45, 10SplitLinesToCollection
Split text into line collection
vb
Public Function SplitLinesToCollection(ByVal Text As String) As cCollectionParameters:
Text- Text to split
Returns: cCollection, one element per line
Example:
vb
Dim lines As cCollection
Set lines = VBMAN.ToolsStr.SplitLinesToCollection("Line 1" & vbCrLf & "Line 2" & vbCrLf & "Line 3")
Dim i As Long
For i = 1 To lines.Count
Debug.Print lines(i)
Next iJoinLinesFromCollection
Join line collection into string
vb
Public Function JoinLinesFromCollection(Coll As cCollection) As StringParameters:
Coll- cCollection
Returns: Joined string
Example:
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)
' Result: Line 1 & vbCrLf & Line 2 & vbCrLf & Line 3ToArray
Convert string to character array
vb
Public Function ToArray(Text As String) As String()Parameters:
Text- Input string
Returns: Character array
Example:
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
' Output: H, e, l, l, oSplitLines
Split text into line array
vb
Public Function SplitLines(ByVal Text As String) As String()Parameters:
Text- Input text
Returns: String array
Example:
vb
Dim lines() As String
lines = VBMAN.ToolsStr.SplitLines("Line 1" & vbCrLf & "Line 2")Comprehensive Examples
Example 1: Generate Unique ID
vb
Private Sub GenerateUniqueId()
' Generate order number
Dim orderId As String
orderId = "ORD" & Replace(VBMAN.ToolsStr.GetGUID(), "-", "")
Debug.Print orderId
' Output: ORD550e8400e29b41d4a716446655440000
End SubExample 2: Extract Data from Text
vb
Private Sub ExtractData()
Dim text As String
text = "Product A: Price 199.99 yuan, Stock 50 pieces, Sales 1000 pieces"
Dim numbers As Collection
Set numbers = VBMAN.ToolsStr.ParseNumbers(text, 2) ' Keep 2 decimal places
If numbers.Count >= 3 Then
Debug.Print "Price: " & numbers(1) ' 199.99
Debug.Print "Stock: " & numbers(2) ' 50
Debug.Print "Sales: " & numbers(3) ' 1000
End If
End SubExample 3: Process Multi-line Text
vb
Private Sub ProcessMultiLineText()
Dim inputText As String
inputText = "Zhang San,25,Beijing" & vbCrLf & _
"Li Si,30,Shanghai" & vbCrLf & _
"Wang Wu,28,Guangzhou"
' Split into lines
Dim lines As cCollection
Set lines = VBMAN.ToolsStr.SplitLinesToCollection(inputText)
' Process each line
Dim i As Long
For i = 1 To lines.Count
Dim parts() As String
parts = Split(lines(i), ",")
Debug.Print "Name: " & parts(0) & ", Age: " & parts(1) & ", City: " & parts(2)
Next i
End SubOther Common Methods
According to source code, ToolsStr also contains the following methods (partial):
| Method | Description |
|---|---|
IsEmptyEx | Check if string is empty (extended) |
TrimEx | Enhanced Trim function |
PercentEncode | Percent encoding |
PercentDecode | Percent decoding |
UnicodeEncode | Unicode encoding |
UnicodeDecode | Unicode decoding |
HasStr | Check if contains substring |
SubStr | Substring extraction |
GetRandStr | Generate random string |
Best Practices
- GUID Usage: Suitable for generating unique identifiers, but not suitable as ordered ID
- Number Extraction: Regex extraction, pay attention to handling decimals and scientific notation
- Text Splitting: Handle different newline formats (\r\n, \n)
- Character Encoding: Note that VB6 internally uses Unicode, but IO often uses ANSI