vbscript Split函数用法详解(字符串转数组函数)

vbscript Split函数用法详解(字符串转数组函数)
vbscript Split函数用法详解(字符串转数组函数)

vbscript Split 函数用法

用法:传回数组= Split(原始字串, 要找的字串, 拆成几个数组)

描述

返回一个下标从零开始的一维数组,它包含指定数目的子字符串。

语法

Split(expression[, delimiter[, count[, compare]]])

例如用逗号(,)分割字符串为数组

复制代码代码如下:

str="1,2,3,4"

strarr=split(str,",")

for i=0 to ubound(strarr)

msgbox strarr(i)

next

Split函数语法有如下几部分:

部分描述

expression 必需的。包含子字符串和分隔符的字符串表达式。如果expression是一个长度为零的字符串(""),Split则返回一个空数组,即没有元素和数据的数组。

delimiter 可选的。用于标识子字符串边界的字符串字符。如果忽略,则使用空格字符(" ")作为分隔符。如果delimiter是一个长度为零的字符串,则返回的数组仅包含一个元素,即完整的expression字符串。

count 可选的。要返回的子字符串数,-1表示返回所有的子字符串。

compare 可选的。数字值,表示判别子字符串时使用的比较方式。关于其值,请参阅“设置值”部分。

参数的设置

设置值

compare参数的设置值:

常数值描述

vbUseCompareOption -1 用Option Compare语句中的设置值执行比较。

vbBinaryCompare 0 执行二进制比较。

vbTextCompare 1 执行文字比较。

vbDatabaseCompare 2 仅用于Microsoft Access。基于您的数据库的信息执行比较。

 

代码如下:

Private Sub Command1_Click()

Dim MyStr As String

MyStr = "1234567123456712345"

MyStrs = Split(MyStr, "67")

For Each Strs In MyStrs

Print Strs

Next

End Sub

输出结果:"12345"、"12345"、"12345"

代码如下:

'这个VB程序是让求10个学生的考试成绩的平均分..

'比如95 85 70 75 80 90 60 65 95 100

'这10个人的分数的平均分...

Private Sub Form_Load()

Dim A$(), i As Long, intB As String, s As Integer

If Dir("d:\平均分.dat") = vbNullString Then

Open "d:\平均分.dat" For Output As #1

Print #1, "95 85 70 75 80 90 60 65 95 100"

Close #1

End If

Open "d:\平均分.dat" For Input As #1

Input #1, intB

Close #1

A = Split(intB, Space(1), -1, 1)

For i = 0 To UBound(A, 1)

Debug.Print A(i); " ";

s = s + A(i)

Next i

Debug.Print ",10个学生的平均成绩是:" & s / 10

End Sub

Private Sub command1_Click()

Dim AString As String

Dim r() As String '把变量按照“,”分割出来的数组

Dim rt As String '最终的结果,用换行符代替“,”

Dim C As Integer '这个是循环用的

AString = "高级,中级,低级,先进"

r = Split(AString, ",") '把每个目录都分解出来

For C = 0 To UBound(r) 'C由0开始循环到r数组的最大下标

rt = rt & vbCrLf & vbCrLf & r(C) '把数组的每一个元素都添加到rt,用回车分割

Next C '循环

MsgBox rt '输出

End Sub

Private Sub Form_Load()

Dim strTextDate As String

strTextDate = "2008-12-1 星期一"

MsgBox Format(Split(strTextDate)(0), "yyyy-mm-dd")

End Sub

当小括号中写0时,返回数组中第一个元素,小括号中写1时返回数组中第二个元素。依此类推,用这种写法返回数据时,必须用一个空格把字符串分开,其它字符仅当做一个数据。例:

Private Sub Form_Load()

Dim AString As String

AString = "高级中级低级先进"

MsgBox Split(AString)(0)

MsgBox Split(AString)(1)

MsgBox Split(AString)(2)

MsgBox Split(AString)(3)

End Sub

以下只返回高级,中级,低级,先进仅当作一个串,即只能返回Split(AString)(0)的值,其它值都产生下标越界错误。所以用以下方法分解时,只能用一个空格分割,而不能用其它字符分割.

代码如下:

Private Sub Form_Load()

Dim AString As String

AString = "高级,中级,低级,先进"

MsgBox Split(AString)(0)

MsgBox Split(AString)(1)

MsgBox Split(AString)(2)

MsgBox Split(AString)(3)

End Sub 

split 命令用途

将文件分割成几段。

语法

要将一个文件分割成包含指定行数的多个文件

split [ -l LineCount ] [ -a SuffixLength ] [ File [ Prefix ] ]

要将一个文件分割成包含指定字节数的多个文件

split -b Number [ k | m ] [ -a SuffixLength ] [ File [ Prefix ] ]

描述

split 命令读取指定文件,以1000 行大小写在一组输出文件上。第一个输出文件名由指定前缀(缺省值x)和aa 后缀组合构成,第二个文件名由前缀和ab 后缀组合构成,如此按字典顺<img class="img InsertH2" alt="段落标题" src="../../System/_resource/blank.gif">序一直到zz(最多676 个文件)。后缀的字母数及因此的输出名称文件数可用-a 标志增加。

您指定的Prefix 不能长于PA TH_MAX - 2 个字节(如果指定了-a 标志,则不能长于PATH_MAX - SuffixLength 个字节)。PATH_MAX 变量指定系统的最大路径名的长度(在/usr/include/sys/limits.h 文件中定义)。

如果您不指定输入文件或如果您指定-(减号)文件名,那么split 命令从标准输入读取文件。

标志

注:-b 和-l 标志是互斥的。

-a SuffixLength 指定用于形成输出名称文件后缀部分的字母数。字母数确定可能的输出文件名组合数。缺省是两个字母。

-b Number 将文件分割成Number 变量指定的字节数。将k(千字节)或m(兆字节)乘数加到Number 值的末尾使文件分别分割成Number*1024 字节或Number*1,048,576 字节的几个段。

-l LineCount 指定每个输出文件的行数。缺省值是1000 行。

退出状态

该命令返回以下退出值:

0 命令成功运行。

>0 发生错误。

示例

代码如下:

1. 要将文件分割成1000 行的段,请输入:

split book

此示例将book 分割成1000 行的段,命名为xaa、xab、xac 等等。

2. 要将文件分割成50 行的段并指定文件名前缀,请输入:

split -l 50 book sect

此示例将book 分割成50 行的段,命名为sectaa、sectab、sectac 等等。

3. 要将文件分割成2KB 的段,请输入:

split -b 2k book

此示例将book 分割成2*1024 字节的段,命名为xaa、xab、xac 等等。

4. 要将文件分割成676 个以上的段,请输入:

split -l 5 -a 3 book sect

此例将book 分割成5 行的段,命名为sectaaa、sectaab、sectaac 等等,直到sectzzz (最多17,576 个文件)。

更多信息请查看IT技术专栏

相关主题
相关文档
最新文档