无法从文本文件中替换撇号值

时间:2015-08-13 08:44:43

标签: vb.net visual-studio-2010

我有一个文本文件。我正在读取该文本文件中的所有数据。我已经给出了这样的代码,用于删除所有撇号和列,双引号和逗号。

 sr = New StreamReader(Filename)


        temp_data = sr.ReadLine

        While Not temp_data = Nothing
            'While sr.Peek() >= 0
            sTemp = Split(temp_data, "|", -1)

            Dim i As Integer
            For i = 0 To sTemp.Length - 1
                Replace(sTemp(i), ",", "")
                Replace(sTemp(i), "'", "")
                Replace(sTemp(i), """", "")

            Next

然后我分配这样的值:

  POnum = Trim(sTemp(0))
                POline = Trim(sTemp(1))
                PORelnum = Trim(sTemp(2))

但我仍然可以通过撇号获得价值。我的代码出了什么问题。

2 个答案:

答案 0 :(得分:3)

您一直在尝试替换其范围内的数组值。但是,当将该值分配给字符串然后分配该值时,更容易替换该值。其中代码

ApplicationContext

这会对你有帮助..

答案 1 :(得分:1)

您没有保存包含已替换文本的字符串。因此它丢失了。您应该将其保存在sTemp(i)

        For i = 0 To sTemp.Length - 1
            sTemp(i) = Replace(sTemp(i), ",", "")
            sTemp(i) = Replace(sTemp(i), "'", "")
            sTemp(i) = Replace(sTemp(i), """", "")

        Next

但是我认为更好的方法是在拆分之前删除这些字符,这样就不需要从数组中循环和删除。

    While Not temp_data = Nothing
        temp_data = temp_data.Replace( ",", "").Replace( "'", "").Replace("""", "")
        sTemp = Split(temp_data, "|", -1)

        '-- no need to loop and replace now

这样可以节省大量不必要的代码,不是吗?