当前位置:编程学习 > C#/ASP.NET >>

修改txt文件

我有一个txt文件,里面的内容为
张三,21岁
李四,25岁
。。。
现在,我要找到姓名为XX的,然后将年龄更新为XX岁,请问怎么操作呢,使用的是C#,希望论坛里的师兄师姐们能给小妹一点帮助!! --------------------编程问答-------------------- 用file.ReadAllText()全部读进内存,
在内存里修改后在写进文件 --------------------编程问答-------------------- 帮你写个函数,用正则处理:

private void modifyAge(string fileName,string userName,int newAge)
{
    string s = File.ReadAllText(fileName);
    s=Regex.Replace(s,string.Format(@"(?<=\b{0},)\d+(?=岁\b)",userName),newAge.ToString());
    File.WriteAllText(s);
}
--------------------编程问答--------------------
引用 1 楼 lcl_data 的回复:
用file.ReadAllText()全部读进内存,
在内存里修改后在写进文件

+1 --------------------编程问答--------------------
引用 3 楼 codersmile 的回复:
引用 1 楼 lcl_data 的回复:

用file.ReadAllText()全部读进内存,
在内存里修改后在写进文件

+1


如果文件比较大,这样的操作会不会影响速度呢?? --------------------编程问答-------------------- 边读边写 也是很难的 --------------------编程问答--------------------
引用 4 楼 shuang7924 的回复:
引用 3 楼 codersmile 的回复:
引用 1 楼 lcl_data 的回复:

用file.ReadAllText()全部读进内存,
在内存里修改后在写进文件

+1


如果文件比较大,这样的操作会不会影响速度呢??


文件很大就应该放到数据库,哪怕是放到xml也行,为什么要放在txt里呢? --------------------编程问答-------------------- --------------------编程问答-------------------- 嘻嘻,问题也已经得到有效的解决了,谢谢各位给与小妹分享你们的宝贵的想法。我的解决方法是
 /// <summary>
        /// 修改文本文件的内容
        /// </summary>
        /// <param name="curLine">指定修改的行数</param>
        /// <param name="newLineValue">要保存的值</param>
        /// <param name="patch">这个文件的路径</param>
        public static void EditFile(int curLine, string newLineValue, string patch)
        {
            try
            {
                FileStream fs = new FileStream(patch, FileMode.Open, FileAccess.Read);

                StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("utf-8"));

                string line = sr.ReadLine();

                StringBuilder sb = new StringBuilder();

                for (int i = 1; line != null; i++)
                {

                    sb.Append(line + "\r\n");

                    if (i != curLine - 1)
                        line = sr.ReadLine();
                    else
                    {
                        sr.ReadLine();
                        line = newLineValue;
                    }

                }
                sr.Close();
                fs.Close();

                FileStream fs1 = new FileStream(patch, FileMode.Open, FileAccess.Write);
                StreamWriter sw = new StreamWriter(fs1);
                sw.Write(sb.ToString());
                sw.Close();
                fs.Close();
            }
            catch (Exception ex)
            {                
                throw ex;
            }
        }

调用这个方法 --------------------编程问答--------------------
引用 4 楼 shuang7924 的回复:
引用 3 楼 codersmile 的回复:
引用 1 楼 lcl_data 的回复:

用file.ReadAllText()全部读进内存,
在内存里修改后在写进文件

+1


如果文件比较大,这样的操作会不会影响速度呢??

速度肯定是这么快一些,比起便改变写的那种等等!
主要的是,如果文件大的话,需要考虑你的内存,不过要是能让内存崩掉的话,那的确很大!
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,