当前位置: 首页 > 编程语言 > C#

替换文本文件中特定行的单词分享

时间:2023-04-11 00:02:22 C#

替换文本文件中特定行的单词我正在开发一个小测试程序来试验一个文本文件并在其中存储一些数据,当我尝试替换特定行值中的单词,我遇到了问题。这就是我的文本文件的格式:user1、1500、1user2、1700、17..等。这是我当前用于逐行读取文件的代码:stringline;Streamreadersr=newStreamreader(path);while((line=sr.ReadLine())!=null){string[]infos=line.Split(',');if(infos[0]==username)//用户名作为参数接收(未显示)//这是我想更改值的地方}基本上,我的目标是仅在用户名匹配时更新点数(文本行中的第二个值-info[1])。我尝试使用以下代码(编辑以匹配我的信息)stringtext=File.ReadAllText("test.txt");text=text.Replace("一些文本","新值");File.WriteAllText("测试.txt",text);这样做的问题是它将替换文本文件中的每个对应值,而不仅仅是正确行中的值(由匹配的用户名指定)。我知道如何更改infos[1]的值(例如,user1为1500),但我不知道如何将其重写到文件中。我在网上和StackOverflow上进行了搜索,但我找不到任何解决这个特定问题的方法,如果它只是在正确的行上而不是在文本中的任何地方。我对如何执行此操作一无所知,非常感谢您提供一些建议。感谢您的帮助。试试这个:varpath=@"c:temptest.txt";varoriginalLines=File.ReadAllLines(path);varupdatedLines=newList();foreach(varlineinoriginalLines){string[]infos=line.Split(',');if(infos[0]=="user2"){//更新值infos[1]=(int.Parse(infos[1])+1).ToString();}updatedLines.Add(string.Join(",",infos));}File.WriteAllLines(path,updatedLines);使用ReadLines和LINQ:以上是C#学习教程:替换文本文件中特定行的wordsharing的全部内容,如果有兴趣需要了解更多C#学习教程,希望大家会更加注意---varline=File.ReadLines("path").FirstOrDefault(x=>x.StartsWith(username));if(line!=null){varparts=line.Split(',');零件[1]=“1500”;//新数字行=string.Join(",",parts);File.WriteAllLines("path",File.ReadLines("path").Where(x=>!x.StartsWith(username)).Concat(new[]{line});}本文收集自网络,不代表立场,如涉及侵权,请点击维权联系管理员删除。如需转载,请注明出处: