删除文本文件中每行第n个位置的字符

时间:2019-04-27 03:20:04

标签: c# regex file .net-core .net-core-2.0

我的文件夹中有多个文本文件。我需要删除文本文件中每行第8个字符处的字符。文本文件具有100多行

我将如何进行?

原始文件示例:

123456789012345....
abcdefghijklmno....

新文件:

12345679012345
abcdefgijklmno

阅读本文很有帮助:

Add a character on each line of a string

注意:文本行的长度可以变化(不确定是否重要-一行可以包含20个字符,下一行可以包含30个字符,依此类推。 所有文本文件都在文件夹中:C:\ TestFolder

类似的问题: Insert character at nth position for each line in a text file

1 个答案:

答案 0 :(得分:1)

您可以使用以下File.ReadAllLines()string.Substring()方法:

string path = @"C:\TestFolder";
string charToInsert = " ";
string[] allFiles = Directory.GetFiles(path, "*.txt", SearchOption.TopDirectoryOnly); //Directory.EnumerateFiles
foreach (string file in allFiles)
{
    var sb = new StringBuilder();
    string[] lines = File.ReadAllLines(file); //input file
    foreach (string line in lines)
    {
        sb.AppendLine(line.Length > 8 ? line.Substring(0, 7) + line.Substring(8) : line);
    }
    File.WriteAllText(file, sb.ToString()); //overwrite modified content
}
  • line.Substring(0, 7)表示前7个字符(#0至#6字符,长度为7)。
  • line.Substring(8)表示从第9个字符到末尾(字符#8到末尾)。

请注意,char位置的索引为零!