中易网

求助:C# 对文本文件的数据修改操作(请详细点)

答案:3  悬赏:70  
解决时间 2021-02-27 13:15
例如chengjiguanli.txt文件中的内容是有序的
001
张三
53
45
002
李四
53
64
003
王五
98
34
004
刘六
83
74
如果要将002 李四 53 64--〉002 李四 77 87(可以对任何一组数据进行更改)通过界面中要更新的新数据由一个button按钮更改并写回原来的chengjiguanli.txt中进行替换,改变后的文件内容变为
001
张三
53
45
002
李四
77
87
003
王五
98
34
004
刘六
83
74
该怎么写代码啊,我想了种种方法也没实现,可能是自己想偏了思路又改不过来了,我现在做一个课程设计就这一个更改模块没做出来了,如果用数据库做我相信很简单,但老师非要用文本文件做,求各位大侠帮帮小弟吧。
界面如下:

编号:------(输入)
姓名:------(输入)
成绩1:------(输入)
成绩2:------(输入) [更新按钮]
最佳答案
可以给你个思路,但是代码你自己写,毕竟这样才能锻炼你的能力。

首先,可以用一个ListBox用来显示文本内容,将每一组内容放在一行里。

按行循环读出文件内容(可以参照MSDN里的System.IO.StreamReader类的帮助,注意:读汉字时要指定编码集,可以使用Encoding.Default)
(读时可以使用ReadLine()方法)
每四行读出来组合成一组字符,生成一个ListBox的Item。组合时要添加分割符,如\t,以方便你更改时获取字符。

可以使用四个TextBox用来显示你的每一组内容,如:编号、姓名、成绩一、成绩二

给你的ListBox注册SelectedIndexChanged事件,每次选择一个项,就将项目的内容文字分割,分别显示在你四个TextBox里。

你可以在TextBox里修改你的每一组内容。
修改后使用一个“修改按钮”或者直接注册TextBox的TextChanged事件来将四个TextBox的内容组合成一个ListBox的项,替换被选中项的内容。

最后就是保存,循环将你的ListBox的各个项再保存到文本中,保存项时记得将你开始使用的分割符保存时替换成\n(也就是换行符)。
(保存可以参照MSDN中的System.IO.StreamWriter类的说明)
全部回答
写成XML吧。具体多查下BAIDU GOOGLE 对你以后有帮助的 再看看别人怎么说的。
如果你写成文本的格式存数据。那读取出来只能是文本流的,只能以替换的方法来修改。因为文本文件没有节点可供支配。另一个方法就是写成XML。XML文档有专门的节点支持。建议你查查NET对XML的操作类。 这玩意不是你想象的那样难,而且在说了。我就是给你一个完整的代码,又有什么用了。不一定可以符合你的需求。最好的方法就是自己有C#参考大全。那里面大多数常用类全部有说明。 这只是我的建议。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请问卫生间墙面用洞石好不好?东鹏瓷砖的销售
那不勒斯意式餐厅在什么地方啊,我要过去处理
奇美发廊地址有知道的么?有点事想过去
微信密码找回了很多次,那还能再找回来吗
yy里挖相亲主持该说什么呢
科创大药房康复药房地址在哪,我要去那里办事
为什么现在开不了超级Qq
炉石传说突然跳出新任务的问题
发那科机械坐标读出指令与案例
客佳宾馆地址在什么地方,想过去办事
想用赖字取微信名
帮忙看一下女友是不是同性恋
七月黄在那里能找到柿子客
珀莱斯特地址有知道的么?有点事想过去
请问中南大学研究生考试复试内容
推荐资讯
耽美 东方神话、西方神话
中国移动通信天成营业厅在什么地方啊,我要过
欧洲街洗车场我想知道这个在什么地方
辽宁中医药大学护理的女生寝室?
定义在区间(0,3]上的函数y = f(x)是减 函数
三邦蜂产品专卖店这个地址在什么地方,我要处
美乐富定制家具和爱谱乐哪个好
怎样预防近视眼度数加深(做广告勿进)
QQ空间的代码怎样写进去?
古琴最初有五根弦 后来两根叫什么
请问报关员和单证员的月薪哪一个的高一些?分
魔域装备神佑有什么用
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?