Instr, Replace and Trim in VB 【代码解释】

Instr, Replace and Trim in VB [Code Explanation]

我是VB的新手,任何人都可以解释一下我无法理解的以下代码。 我基本上学习了 Instr、Trim 和 replace,但所有这些都同时出现在了一起。 这里 Myval1 和 Myval2 包含

Myval1='N-123','N-124','N-125' Myval2=AB,BC,CD

据我了解,StreamReader读取路径,声明为line的行,所有行都是从

读取的

给定路径并存储在行中,然后我们在行中处理特定单词 myval1 作为比较方法作为测试,如果

position 大于0则trim,会发生replace。在这里,Myval1= 的位置是 1,现在语句

在'Then'之后会处理。我对这个有 ", , , " 的语句感到困惑 我理解 Myval1,Myval2 被替换为 null("") 并且我不理解三个逗号,任何人都可以在这里解释

        Dim st As StreamReader = New StreamReader(myPath)
        Dim line As String

        Do
            line = st.ReadLine()
            If InStr(line, "Myval1=", CompareMethod.Text) > 0 Then
                Myval1 = Trim(Replace(line, "Myval1=", "", , , CompareMethod.Text))
            End If
    If InStr(line, "MyValue=", CompareMethod.Text) > 0 Then
                Myval2 = Trim(Replace(line, "Myval2=", "", , , CompareMethod.Text))
            End If

代码中缺少一些东西 - 循环在哪里关闭?另外,Myval1 和 Myval2 在哪里声明?

尽管如此,代码执行以下操作:

逐行顺序读取文件。如果某行包含字符串 "Myval1=",则从该行中删除该字符串,并删除该行开头和结尾的空格 (Trim)。 请记住,变量 "line" 本身并没有因此而改变。操作的结果保存在变量 "Myval1".

如果该行包含字符串 "Myval2="

,之后也会执行同样的操作

Replace函数中的“, , ,”只是表示没有使用两个可选参数。你也可以这样写:

Myval1 = Trim(Replace(line, "Myval1=", "",vbNull,vbNull, CompareMethod.Text))

第一个省略的参数允许您定义读取时的起始位置"line"。第二个允许您定义一个 SubString 应该被替换的频率限制。

让我们假设变量 "line" 如下所示:

Dim line As String = "xxxMyval1=foo,Myval1=bar,Myval1=foobar"

您可以指定从第四个位置开始,只删除前两次出现的 "Myval1",如下所示:

Dim result As String = Replace(line, "Myval1=", "", 4, 2, CompareMethod.Text)
Console.Write(result)

产生:

foo,bar,Myval1=foobar

最后: 您甚至不需要可选参数 "CompareMethod.Text",因为它是默认参数。所以你的 Replace 函数也可以看起来像这样并且做同样的事情:

Dim result As String = Replace(line, "Myval1=", "", 4, 2)

或您的原始代码:

Myval1 = Trim(Replace(line, "Myval1=", ""))