VBScript 数组函数
最后修改于 2025 年 4 月 4 日
VBScript 中的数组是存储多个值的强大数据结构。VBScript 提供了几个内置函数来高效地处理数组。本教程将通过实际示例介绍重要的数组函数。您将学习如何在脚本中创建、操作和处理数组。
VBScript 数组函数概述
VBScript 提供了各种函数来处理数组。主要函数包括用于创建的 Array(),用于边界检查的 UBound() 和 LBound(),用于字符串转换的 Split(),以及用于数组连接的 Join()。这些函数简化了数组操作任务。
数组可以是固定大小或动态的,VBScript 都能很好地处理这两种类型。理解这些函数对于有效的数据处理至关重要。我们将在接下来的部分中通过实际示例探讨每个函数。
使用 Array() 函数创建数组
Array() 函数一步创建并初始化一个数组。它接受逗号分隔的值,并返回一个包含数组的变体。这是使用预定义值创建数组的最简单方法。
' Create and initialize an array
Dim colors
colors = Array("Red", "Green", "Blue", "Yellow")
' Display array elements
For i = LBound(colors) To UBound(colors)
WScript.Echo "Color " & i & ": " & colors(i)
Next
此示例演示了数组创建和迭代。Array() 函数创建了一个基于零的数组。我们使用 LBound() 和 UBound() 来获取循环的下界和上界。
使用 UBound() 和 LBound() 确定数组大小
UBound() 返回最高可用索引,而 LBound() 返回最低索引(通常为 0)。这些函数对于安全的数组遍历至关重要。它们有助于防止“下标越界”错误。
Dim numbers(5) numbers(0) = 10 numbers(1) = 20 numbers(2) = 30 numbers(3) = 40 numbers(4) = 50 numbers(5) = 60 WScript.Echo "Array lower bound: " & LBound(numbers) WScript.Echo "Array upper bound: " & UBound(numbers) WScript.Echo "Array size: " & (UBound(numbers) - LBound(numbers) + 1)
此示例展示了如何确定数组边界并计算大小。该数组显式声明了 6 个元素(0-5)。大小计算加 1 是因为数组索引是包含性的。
使用 Split() 将字符串拆分为数组
Split() 函数根据分隔符将字符串拆分为一个数组。它对于解析 CSV 数据或日志文件很有用。分隔符可以是任何字符或字符串,默认是空格。
Dim sentence, words
sentence = "The quick brown fox jumps over the lazy dog"
' Split by space (default delimiter)
words = Split(sentence)
' Display each word
For Each word In words
WScript.Echo word
Next
' Split with custom delimiter
Dim csvData, fields
csvData = "John,Doe,35,New York"
fields = Split(csvData, ",")
WScript.Echo "First name: " & fields(0)
WScript.Echo "Last name: " & fields(1)
此示例演示了默认和自定义分隔符拆分。第一部分将一个句子拆分为单词,而第二部分解析 CSV 数据。请注意数组索引从 0 开始。
使用 Join() 将数组连接为字符串
Join() 函数将数组元素合并为一个字符串。它是 Split() 的逆操作。您可以指定一个分隔符来分隔元素。默认分隔符是空格。
Dim fruits(3), fruitString, csvString fruits(0) = "Apple" fruits(1) = "Banana" fruits(2) = "Orange" fruits(3) = "Mango" ' Join with default delimiter (space) fruitString = Join(fruits) WScript.Echo "Fruits: " & fruitString ' Join with custom delimiter csvString = Join(fruits, ",") WScript.Echo "CSV: " & csvString
此示例显示了使用不同分隔符的数组连接。第一次连接使用空格,创建了一个可读的列表。第二次使用逗号,创建了 CSV 格式的输出。Join() 非常适合从数组生成分隔的字符串。
使用 Filter() 函数过滤数组
Filter() 函数根据搜索条件返回数组的子集。它可以执行区分大小写或不区分大小写的搜索。该函数返回一个包含匹配元素的新数组。
Dim names(4), filteredNames
names(0) = "John"
names(1) = "Jane"
names(2) = "Bob"
names(3) = "Alice"
names(4) = "Joan"
' Filter names starting with "Jo"
filteredNames = Filter(names, "Jo")
WScript.Echo "Names starting with 'Jo':"
For Each name In filteredNames
WScript.Echo name
Next
' Case-insensitive filter
filteredNames = Filter(names, "jo", True, vbTextCompare)
WScript.Echo "Case-insensitive matches for 'jo':"
For Each name In filteredNames
WScript.Echo name
Next
此示例演示了基本和高级过滤。第一个过滤器查找精确匹配,而第二个执行不区分大小写的匹配。vbTextCompare 常量启用不区分大小写的比较。
来源
在本文中,我们探讨了从创建到操作的基本 VBScript 数组函数。这些函数提供了处理数据集合的强大工具。通过实际示例,我们展示了如何有效地处理数组。掌握这些函数将大大提高您的脚本编写能力。