【问题标题】:Instr, Replace and Trim in VB [Code Explanation]VB中的Instr、Replace和Trim【代码说明】
【发布时间】:2015-06-21 03:46:10
【问题描述】:

我是 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

【问题讨论】:

    标签: vb.net replace trim


    【解决方案1】:

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

    但代码执行以下操作:

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

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

    ,则之后会执行相同的操作

    Replace 函数中的“, , ” 仅表示不使用两个可选参数。你也可以写:

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

    第一个省略的参数允许您在读取“行”时定义起始位置。第二个允许您定义 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=", ""))
    

    【讨论】:

    • 感谢 Jan 的解释,我只是从我的主代码中挑选了一些代码。所以循环并没有在这里结束。
    猜你喜欢
    • 2019-09-11
    • 1970-01-01
    • 2012-06-25
    • 2021-10-06
    • 2017-02-07
    • 1970-01-01
    • 2013-09-12
    • 2017-01-23
    • 2014-09-21
    相关资源
    最近更新 更多