标题:请教一个关于‘重写整个文件(并对指定行跳过不写)’的问题
只看楼主
BERO
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-8-12
结帖率:0
已结贴  问题点数:20 回复次数:2 
请教一个关于‘重写整个文件(并对指定行跳过不写)’的问题
我是刚开始接触vb. net,现在想对已知文件中的数据修改。方法是:复制原有文件"A.csv"为"A_tmp.csv",删除原有文件并再次创建,再将复制的"A_tmp.csv"文件的每一行读取到新创建的"A.csv"中(其中需要修改的数据跳过不写);写完后,再将修改的数据附加到"A.csv"文件中。代码如下:
            Dim r1 As StreamReader
            Dim w1 As StreamWriter
            Dim w As StreamWriter
            Dim line As String = ""
            Dim anItem As ScriptList
            File.Copy("A.csv", "A_tmp.csv", True)
            File.Delete("A.csv")
            r1 = New StreamReader("A_tmp.csv")
            w1 = New StreamWriter("A.csv", True)
            Do While Not r1.EndOfStream
                If r1.ReadLine <> "" Then
                    w1.WriteLine(r1.ReadLine())
                Else
                End If
            Loop
            w1.Close()
            r1.Close()

            '↑↑↑↑【重写整个文件(对修改行跳过不写)】↑↑↑↑
            '↓↓↓↓↓↓↓↓【将修改数据写入文件】↓↓↓↓↓↓↓
            '
            '//=========以下是添加数据到A.csv中
            '
            anItem = New ScriptList
            anItem.SiteName = SiteName.Text + "-" + PC.Text
            anItem.URL = URl.Text
            anItem.ReadTitle = c
            anItem.CopyDetails = d

            line = "(修改的数据)"
            w = New IO.StreamWriter("A.csv", True)
            w.WriteLine(line)
            w.Close()
            Me.Close()

请问这样写是哪里有错?导致我运行这些代码后A.csv文件中的数据有所缺失。请高手赐教!谢谢!
搜索更多相关主题的帖子: 文件 重写 
2010-08-12 15:43
BERO
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-8-12
得分:0 
读出来的症状就是 A.csv 中得到的行是 A_tmp。csv中,从第二行开始读,即只读2.4.6.。。行
2010-08-12 17:27
yz8629600
Rank: 2
等 级:论坛游民
帖 子:6
专家分:20
注 册:2010-8-12
得分:20 
顶一下,我也是新手,不太懂
2010-08-13 09:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-315527-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.293229 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved