VB中的Instr,Replace和Trim [代码说明]

时间:2015-04-15 08:57:46

标签: vb.net replace trim

我是VB新手,任何人都可以解释以下代码,这对我来说是不可理解的。 我基本上学习了Instr,Trim和replace,但是所有人都在一起混淆了。 这里Myval1和Myval2包含

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

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

中读取

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

位置大于0然后修剪,替换将发生。这里,Myval1 =的位置是1,现在是语句

处理之后

。我在这句话中混淆了“,,,”我理解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

1 个答案:

答案 0 :(得分:1)

代码中缺少某些东西 - 循环在哪里关闭? Myval1和Myval2在哪里宣布?

然而,代码执行以下操作:

逐行顺序读取文件。如果一行包含字符串" Myval1 ="然后从行中删除该字符串,并删除行的开头和结尾处的空白(修剪)。 请记住变量" 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,酒吧,Myval1 = foobar的

最后: 你甚至不需要可选参数" CompareMethod.Text"因为它是默认值。因此,您的替换功能也可以如下所示并执行相同的操作:

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

或者您的原始代码:

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