用c#修改txt文件内容

例如:1,中国队,2,3212,美国队,1,123怎么用C#将这个文件的最后一列清零呢?我是新手,请大家多指教最好有源码,带注释的,谢谢修改好的txt文件应该是这样,例如... 例如:
1,中国队,2,321
2,美国队,1,123
怎么用C#将这个文件的最后一列清零呢?
我是新手,请大家多指教
最好有源码,带注释的,谢谢
修改好的txt文件应该是这样,例如:

1,中国队,2,0
2,美国队,1,0
展开
 我来答
Ben
2015-07-07 · 知道合伙人软件行家
Ben
知道合伙人软件行家
采纳数:860 获赞数:2875
认真回答者.

向TA提问 私信TA
展开全部
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using BarCode.Logs;
namespace BarCode.Else
{
    public partial class EventRecord : Form
    {
        string path = Application.StartupPath + "\\Else\\Memorandum.ini";
        public EventRecord()
        {
            InitializeComponent();
        }
        private void EventRecord_Load(object sender, EventArgs e)
        {
            file_open();
        }
        private void file_open()
        {
            //打开系统日志文件
            if (!File.Exists(path))
            {
                // 目录/文件不存在,建立目录/文件 
                File.CreateText(path);
            }
            //打开文件
            //FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);
            //通过指定字符编码方式可以实现对汉字的支持,否则在用记事本打开查看会出现乱码 
            StreamReader m_streamReader = new StreamReader(path, System.Text.Encoding.GetEncoding("GB2312"));
            //使用StreamReader类来读取文件
            m_streamReader.BaseStream.Seek(0, SeekOrigin.Begin);
            // 从数据流中读取每一行,直到文件的最后一行,并在richTextBox1中显示出内容
            this.richTextRecord.Text = "";
            string strLine = m_streamReader.ReadLine();
            while (strLine != null)
            {
                this.richTextRecord.Text += strLine + "\n";
                strLine = m_streamReader.ReadLine();
            }
            //关闭此StreamReader对象
            m_streamReader.Close();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            SaveToTxtFile();
        }
        /// <summary>
        /// 保存文件
        /// </summary>
        private void SaveToTxtFile()
        {
            //int buffer = 1024;
            //创建一个文件流,用以写入或者创建一个StreamWriter
            //FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write);
            //通过指定字符编码方式可以实现对汉字的支持,否则在用记事本打开查看会出现乱码 
            /*改函数很重要由于要将修改的内容覆盖原来的文件内容故设第二个参数为false,
            同时还不能用其他类如FileString来操作文件(多线程占用,不能覆盖修改文件)
             * 例如:new StreamWriter(fs, true, Encoding.GetEncoding("GB2312"));是错误的*/
            StreamWriter m_streamWriter = new StreamWriter(path, false, Encoding.GetEncoding("GB2312"));
            m_streamWriter.Flush();
            // 使用StreamWriter来往文件中写入内容
            m_streamWriter.BaseStream.Seek(0, SeekOrigin.Begin);
            // 把richTextBox1中的内容写入文件
            m_streamWriter.Write(richTextRecord.Text);
            //关闭此文件
            m_streamWriter.Flush();
            m_streamWriter.Close();
            this.labwarm.Text = "保存成功!";
        }
        private void button2_Click(object sender, EventArgs e)
        {
        }
        private void richTextBox1_TextChanged(object sender, EventArgs e)
        {
            this.labwarm.Text = "正在编辑文本";
        }
        private void button3_Click(object sender, EventArgs e)
        {
            SavefileAs();
        }
        /// <summary>
        /// 另存为
        /// </summary>
        private void SavefileAs()
        {
            SaveFileDialog savefile = new SaveFileDialog();
            //提示用户选择保存文件(默认为桌面) 
            savefile.InitialDirectory = @"C:\Documents and Settings\Administrator\桌面";
            //打开文件的初始目录 
            savefile.Filter = "备忘录 (*.txt)|";
            savefile.FileName = "Memorandum";
            //格式转换如此简单 
            savefile.DefaultExt = ".txt";
            //设置或获取文件后缀 
            DialogResult dr = savefile.ShowDialog();
            if (dr == DialogResult.OK)
            {
                String filePath = savefile.FileName.ToString();
                try
                {
                    File.Copy(path, filePath, true);
                }
                catch (Exception e1)
                { (new Clogs()).LogError("错误信息", e1); return; }
            }
        }
    }
}
雪舞苍空
推荐于2017-11-25 · TA获得超过530个赞
知道小有建树答主
回答量:360
采纳率:0%
帮助的人:620万
展开全部
唔……我用的办法是这样的:
用StreamReader先去读取txt文件。
然后对每一行的最后一个分隔符后的数字赋值0
最后用StreamWritter写入txt文件。

代码我随便写一些,你懂我的意思就好了,我没有测试,有错误的话你自己去调试吧……
C# Code
String ReadTxt,WriteTxt;
WriteTxt= String.Empty;
Using(StreamReader sr = new StreamReader(TxtFilePath))
{
ReadTxt = sr.ReadToEnd();
}
String[] FileRead = System.Text.RegularExpressions.Regex.Split(ReadTxt , "\r\n");
foreach(String ReadLine in FileRead)
{
WriteTxt += ReadLine.Substring(0,ReadLine.LastIndexOf(',')) + ",0\r\n",
}
Using(StreamWritter sw = new StreamWritter (WriteTxtFilePath))
{
sw.Write(WriteTxt);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jingxiong12345
2012-03-19 · TA获得超过536个赞
知道小有建树答主
回答量:1252
采纳率:0%
帮助的人:649万
展开全部
其实也就直接把读取的数据 遍历一遍把符合的删除然后再次写入不就好了?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
愈叶孤丹XS
2012-03-19 · TA获得超过237个赞
知道答主
回答量:218
采纳率:0%
帮助的人:161万
展开全部
你意思是把321和123清零吗?
更多追问追答
追问
对的
追答
你说的txt是textbox控件吗。要这样我知道。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式