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 不能长于 path_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 个文件)。
上一篇: 流星一点也不管用
下一篇: vbs获取当前路径的代码