Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
索引和长度必须引用字符串中的位置。“&vbCrLf&”参数名称:length vb.net_Vb.net_Substring - Fatal编程技术网

索引和长度必须引用字符串中的位置。“&vbCrLf&”参数名称:length vb.net

索引和长度必须引用字符串中的位置。“&vbCrLf&”参数名称:length vb.net,vb.net,substring,Vb.net,Substring,我试图从字符串行中提取一个部分。前两次运行正常,但随后生成 索引和长度必须引用字符串中的位置vbCrLf&参数名称:length vb.net 请帮我解决这个问题。子字符串起始位置,长度是从起始位置开始的字符数 如果要像Substringstart\u position那样执行此操作,必须将end\u position end position替换为98-45,因为end start=length在Sub的开头检查临时字符串的长度 Public Sub Main(temp As String)

我试图从字符串行中提取一个部分。前两次运行正常,但随后生成

索引和长度必须引用字符串中的位置vbCrLf&参数名称:length vb.net


请帮我解决这个问题。

子字符串起始位置,长度是从起始位置开始的字符数


如果要像Substringstart\u position那样执行此操作,必须将end\u position end position替换为98-45,因为end start=length

在Sub的开头检查临时字符串的长度

Public Sub Main(temp As String)
    Dim AccNo As String = temp.Substring(0, 18)
    Dim Identifier As String = temp.Substring(36, 46)
    Dim Expected As String = temp.Substring(45, 98)
    Dim Received As String = temp.Substring(100, 105)
    Dim Length As String = temp.Length.ToString
    lbLength.Text = Length.ToString

    lbAcc.Text = AccNo.ToString
    lbIdentifier.Text = Identifier.ToString
    lbExpected.Text = Expected.ToString
    lbReceived.Text = Received.ToString
End Sub

记住,子字符串的第二个参数不是结束位置,而是要从第一个参数开始检索的字符数。您可以在VB.NET中使用Mid函数,子字符串的工作方式不同。@HansPassant:不要鼓励他使用VB6时代的函数:为什么你认为他不能自己写那个函数?这是一个非常简单的问题。顺便说一句,在你邀请我之后,我就不再评论你的帖子了,我会请求你的帮助作为回报。谢谢你,斯塔夫和汉斯,非常感谢。但是我不明白为什么它不影响这个Dim标识符,因为String=temp.Substring36,46工作正常。我不能说,因为我不知道temp是什么。中断代码或将debug.printtemp.length置于.36+46=82之上,这样字符串至少有那么长,45+98=143,但比143短。如果你评论第二个子串,我打赌你会在第三个子串上得到与100+105=205相同的错误,甚至更长。
Dim temp As String = ""
    If temp.Length < 205 Then
        MessageBox.Show("String is too short to process")
        Exit Sub
End If