从字符串中选择值以分配 vb.net 中的变量
Selecting values from a string to assign variables in vb.net
我有这个 vb.net 代码连接到我们的 U2 数据库并使用子例程获取数据,当我显示数据时它只是一个由“|”分隔的长字符串。我正在尝试获取每个值并为其分配变量,以便我可以将它们放在文本框中,但每次我尝试 split() 或使用 for 循环语句时,我要么得到 "string() cannot be converted to string" 要么只是最后一个字母整个字符串。
这是我尝试拉动绳索以查看拆分它是否更容易的第一种方法:
Dim args As String = PKG_FUNCTION + "|" + PKG_SERVICE + "|" + PKG_NUMBER
Dim Subr As UniSubroutine
Dim value As String
Subr = Sess.CreateUniSubroutine("SHIP_INFO_FROM_MACH", 5)
With Subr
.SetArg(0, args)
.Call()
value = (.GetArg(3))
txtOutput.Text = value
End With
txtOutput.Text = value
End Sub
这是我使用 UniDynArray 尝试的原始方式:
Dim args As String = PKG_FUNCTION + "|" + PKG_SERVICE + "|" + PKG_NUMBER
Dim Subr As UniSubroutine
Dim outArray As UniDynArray
Dim inArray As UniDynArray
Dim errorArray As UniDynArray
Subr = Sess.CreateUniSubroutine("SHIP_INFO_FROM_MACH", 5)
Subr.SetArg(0, args)
Try
Subr.Call()
Catch Ex As Exception
MsgBox("Error")
End Try
inArray = Subr.GetArgDynArray(0) 'Mach Input
txtInput.Text = inArray.ToString()
outArray = Subr.GetArgDynArray(3) 'Mach Output
txtOutput.Text = outArray.ToString()
errorArray = Subr.GetArgDynArray(4) 'Mach Error Output
txtError.Text = errorArray.ToString()
txtPackageID.SelectAll()
这是我尝试过的每个函数的 returns "string cannot be converted to string()" 或 "char() cannot be converted to integer"
Subr = Sess.CreateUniSubroutine("SHIP_INFO_FROM_MACH", 5)
With Subr
.SetArg(0, args)
.Call()
value = (.GetArg(3))
Dim test As String() = value.Split(New Char)({"|"c})
Dim word As String
For Each word In test
txtOutput.Text = word
Next
End With
txtOutput.Text = value
End Sub
有了这个,我可以通过选择它的 space 从字符串中提取任何字母,例如:value(20) 提取第 20 个字母,但我仍然不知道如何用它的定界符分隔并提取每个元素。
Subr = Sess.CreateUniSubroutine("SHIP_INFO_FROM_MACH", 5)
With Subr
.SetArg(0, args)
.Call()
value = (.GetArg(3))
Dim first As New List(Of String) From {value(20)}
For Each item As String In first
txtOutput.Text = UCase(item)
Next
End With
拆分为 i = 字符串中的目标值
outArray = Subr.GetArgDynArray(3)
value = outArray.ToString()
dim strSplit as String() = value.split("|")
txtOutput.text = split(i).Trim()
我有这个 vb.net 代码连接到我们的 U2 数据库并使用子例程获取数据,当我显示数据时它只是一个由“|”分隔的长字符串。我正在尝试获取每个值并为其分配变量,以便我可以将它们放在文本框中,但每次我尝试 split() 或使用 for 循环语句时,我要么得到 "string() cannot be converted to string" 要么只是最后一个字母整个字符串。
这是我尝试拉动绳索以查看拆分它是否更容易的第一种方法:
Dim args As String = PKG_FUNCTION + "|" + PKG_SERVICE + "|" + PKG_NUMBER
Dim Subr As UniSubroutine
Dim value As String
Subr = Sess.CreateUniSubroutine("SHIP_INFO_FROM_MACH", 5)
With Subr
.SetArg(0, args)
.Call()
value = (.GetArg(3))
txtOutput.Text = value
End With
txtOutput.Text = value
End Sub
这是我使用 UniDynArray 尝试的原始方式:
Dim args As String = PKG_FUNCTION + "|" + PKG_SERVICE + "|" + PKG_NUMBER
Dim Subr As UniSubroutine
Dim outArray As UniDynArray
Dim inArray As UniDynArray
Dim errorArray As UniDynArray
Subr = Sess.CreateUniSubroutine("SHIP_INFO_FROM_MACH", 5)
Subr.SetArg(0, args)
Try
Subr.Call()
Catch Ex As Exception
MsgBox("Error")
End Try
inArray = Subr.GetArgDynArray(0) 'Mach Input
txtInput.Text = inArray.ToString()
outArray = Subr.GetArgDynArray(3) 'Mach Output
txtOutput.Text = outArray.ToString()
errorArray = Subr.GetArgDynArray(4) 'Mach Error Output
txtError.Text = errorArray.ToString()
txtPackageID.SelectAll()
这是我尝试过的每个函数的 returns "string cannot be converted to string()" 或 "char() cannot be converted to integer"
Subr = Sess.CreateUniSubroutine("SHIP_INFO_FROM_MACH", 5)
With Subr
.SetArg(0, args)
.Call()
value = (.GetArg(3))
Dim test As String() = value.Split(New Char)({"|"c})
Dim word As String
For Each word In test
txtOutput.Text = word
Next
End With
txtOutput.Text = value
End Sub
有了这个,我可以通过选择它的 space 从字符串中提取任何字母,例如:value(20) 提取第 20 个字母,但我仍然不知道如何用它的定界符分隔并提取每个元素。
Subr = Sess.CreateUniSubroutine("SHIP_INFO_FROM_MACH", 5)
With Subr
.SetArg(0, args)
.Call()
value = (.GetArg(3))
Dim first As New List(Of String) From {value(20)}
For Each item As String In first
txtOutput.Text = UCase(item)
Next
End With
拆分为 i = 字符串中的目标值
outArray = Subr.GetArgDynArray(3)
value = outArray.ToString()
dim strSplit as String() = value.split("|")
txtOutput.text = split(i).Trim()