【问题标题】:Find and replace with lookup file查找和替换查找文件
【发布时间】:2017-08-08 19:02:47
【问题描述】:

我想用查找文件查找和替换文本文件中的文本。

目前我使用以下代码替换单个字符串:

System.IO.StreamReader objReader;
objReader = new System.IO.StreamReader(someTextFile);
string content = objReader.ReadToEnd();
objReader.Close();

content = content.Replace("Text1", "Replacetext1");

System.IO.StreamWriter objWriter;
objWriter = new System.IO.StreamWriter(someTextFile);
objWriter.Write(content);
objWriter.Close();

我想使用 csv 文件进行查找。这个文件的格式是:

文本1,替换文本1
文本2,替换文本2
文本3,替换文本3
等等...

谁能给点建议?

谢谢

【问题讨论】:

  • 您真的应该自己尝试一些代码,而不是让我们为您编写。但另一种方法可能是对 CSV 文件使用 3pp 库,例如:joshclose.github.io/CsvHelper
  • 这个问题有点宽泛。特别是什么让你碰壁? (尝试阅读How to Ask 以改善您的问题,也许)
  • 一般来说,你还有这些任务要做: 1. 读入 csv - 可能读入 List> 或 List> 或其他东西一样。 2. 修改上面的代码,以便在迭代列表的循环中调用替换行。
  • 请注意,如果您按上述方式设计 csv,则搜索文本和替换文本都不能包含“,”。
  • 为了清楚起见,您想查看查找文件,然后从第一行中取出第一个单词 -> 然后运行另一个文件并将该单词的所有出现替换为是写在查找文件中的吗?对吗?

标签: c#


【解决方案1】:

好的,这里有一些提示:

1) 使用

string [] allLines = System.IO.File.ReadAllLines("yourLookUpFilePathHere");

它将返回字符串数组中的所有行。您可以对要在其中进行替换的文件执行相同的操作。现在您可以遍历查找文件。

2)在数组中的每个位置/行可以使用方法:

string [] partsOfLine = allLines[i].Split('hereYourSeparatorAsChar');

3) 现在,如果您弄清了第一个单词,您可以开始第二个循环以在替换文件中查找匹配项,然后您可以使用代码中的行:

allLinesOfReplaceFile[i] = allLinesOfReplaceFile[i].Replace("Text1", "Replacetext1");

我希望你能理解,如果仍然不清楚,请给我评论

【讨论】:

  • 非常感谢!通过这些技巧,我可以构建我想要的东西。
  • 没问题,我很高兴能帮上忙 :)
猜你喜欢
  • 1970-01-01
  • 2011-07-18
  • 2014-07-05
  • 2010-11-16
  • 2014-09-01
  • 1970-01-01
相关资源
最近更新 更多