日期:2009-06-16  浏览次数:20372 次

这是我用VB.NET做的一个Project内的一部分,在这里我主要介绍一下我在编程中使用Split函数新的认识。以前我在使用VB6.0时,对Split函数,只知道它可以用来拆开字符串。

项目要求提取指定文本文件导入至规定的数据表中,而数据表中部分字段信息就在用户所选择文本文件的文件名称中。文本文件名称如下列示:
MCZ-2004-08-21-灯丝电压-0002-X-2DJ.txt
MCZ-2004-08-21-移频接收电压-0002-A2G-JS.txt
QCZ-2004-08-21-轨道电压-0001-1001DGJ.txt
XSZ-2004-08-21-电码化发送电压-0001-SI2JF(L1).txt
XSZ-2004-09-10-电源电压-0050-(直2)GD8-48V.txt
这些文件名称中包含站名(eg:MCZ)、日期(eg:2004-08-21)、类别(eg:灯丝电压)、设备位置(eg:X-2DJ)
为了得到这些信息,这里就要用到Split函数。在进行处理之前,我们必须使用Path类的GetFileNameWithoutExtension方法,去掉文件名称中扩展名并赋给一个变量FName。即:
FName = Path.GetFileNameWithoutExtension(含有路径的文件名称)

用以下办法来取得字段信息(Zm,Csrq ,Lb,Sbwz都是事先定义好的全局变量 )

'//取得文件名中含有的字段信息Zm,Csrq,Lb,Sbwz 值
Private Sub field_Value(ByVal file_Name As String)
Try
Dim a() As String
a = Split(file_Name, "-", 7)
Zm = a(0)
Csrq = a(1) & "-" & a(2) & "-" & a(3)
Lb = a(4)
Sbwz = a(6)
'a(5)是数字序列,属无用信息
Catch ex As Exception
MsgBox("错误:" & ex.Message)
End Try
End Sub

Split函数--是将获取的字符串分解为子字符串组成的数组。如果分界符设置为空字符串,则在数组的第一个位置返回整个字符串,也就是说它返回的是一个数组。

语法

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

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

部分描述
expression 必需的。包含子字符串和分隔符的字符串表达式 。如果expression是一个长度为零的字符串(""),Split则返回一个空数组,即没有元素和数据的数组。
delimiter 可选的。用于标识子字符串边界的字符串字符。如果忽略,则使用空格字符(" ")作为分隔符。如果delimiter是一个长度为零的字符串,则返回的数组仅包含一个元素,即完整的 expression字符串。
count 可选的。要返回的子字符串数,–1表示返回所有的子字符串。
compare 可选的。数字值,表示判别子字符串时使用的比较方式。

而且,在VB.NET中String对象还提供了Split方法,传递的参数还可以是分隔符的字符数组,如下中的 New Char() {",", " ", "!"}

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
Dim strNames() As String
Dim strName2 As String = "Hi,I am wuxuetie!"
strNames = strName2.Split(New Char() {",", " ", "!"})
Dim i As Integer
For i = 0 To strNames.Length - 1
TextBox1.Text = ""
Debug.Write(strNames(i) & " ")
Next
End Sub