认为它简单直白,但我无法弄清楚为什么会有这样的事情
Dim MyDelimeter as string = "vbTab"
MyReader.Delimiters = New String() {MyDelimeter }
它没有将MyDelimeter识别为标签。如果我有逗号它的工作。
Dim MyDelimeter as string = ","
你能解释一下它为什么会发生吗?我的分隔符来自xml序列化文件,所以我想把它们放在不适合vbtab的地方。
答案 0 :(得分:3)
使用
MyReader.Delimiters = New String() {vbTab}
而不是
MyReader.Delimiters = New String() { "vbTab" }
vbTab
是制表符的视觉基本常量,而字符串文字"vbTab"
只是文本"vbTab"
。
如果您已将值"vbTab"
存储在文件中以指示应使用的分隔符,则必须使用If...Else
或Select..Case
来使用vbTab
常量。当然你也可以在文件中存储真正的制表符,但我想你不想要它,因为它不是真的可见。
例如
If delimiterInFile = "vbTab" Then
MyReader.Delimiters = New String() {vbTab}
ElseIf delimiterInFile = "comma" Then
MyReader.Delimiters = New String() {","}
ElseIf delimiterInFile = "pipe" Then
MyReader.Delimiters = New String() {"|"}
' ....
Else
MyReader.Delimiters = New String() {","}
End If