我有一个文本文件。我正在读取该文本文件中的所有数据。我已经给出了这样的代码,用于删除所有撇号和列,双引号和逗号。
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))
但我仍然可以通过撇号获得价值。我的代码出了什么问题。
答案 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
这样可以节省大量不必要的代码,不是吗?