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(KB)或 m(MB)乘數加到 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 個檔案)。