Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在文本文件中每行的第n个位置插入字符_C#_Regex_Text_.net Core_Asp.net Core 2.0 - Fatal编程技术网

C# 在文本文件中每行的第n个位置插入字符

C# 在文本文件中每行的第n个位置插入字符,c#,regex,text,.net-core,asp.net-core-2.0,C#,Regex,Text,.net Core,Asp.net Core 2.0,我有文本文件,我需要在文本文件中每行的第8个字符处添加一个空格。文本文件有1000多行 我该怎么做 原始文件示例: 123456789012345.... abcdefghijklmno.... 新文件: 12345678 9012345 abcdefgh ijklmno 阅读本文有助于: 注意:文本行的长度可以是可变的(不确定是否重要,一行可以有20个字符,下一行可以有30个字符,等等)。所有文本文件都在文件夹C:\TestFolder中 类似问题: 此处不需要使用正则表达式。一种简单的

我有文本文件,我需要在文本文件中每行的第8个字符处添加一个空格。文本文件有1000多行

我该怎么做

原始文件示例:

123456789012345....
abcdefghijklmno....
新文件:

12345678 9012345
abcdefgh ijklmno
阅读本文有助于:

注意:文本行的长度可以是可变的(不确定是否重要,一行可以有20个字符,下一行可以有30个字符,等等)。所有文本文件都在文件夹C:\TestFolder中

类似问题:


此处不需要使用正则表达式。一种简单的方法是使用
File.ReadAllLines
读取所有行,只需在所需位置添加字符,如下代码所示:

var sb = new StringBuilder();
string path = @"E:\test\test.txt"; //input file
string path2 = @"E:\test\test2.txt"; //the output file, could be same as input path to overwrite
string charToInsert = " ";
string[] lines = File.ReadAllLines(path);
foreach (string line in lines)
{
    sb.AppendLine(line.Length > 8 ? line.Substring(0, 8) + charToInsert + line.Substring(9) : line);
}
File.WriteAllText(path2, sb.ToString());
在这里,出于测试目的,我对输出使用不同的路径(不要覆盖输入)

编辑:

修改后的代码将循环遍历文件夹中的所有.txt文件:

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, 8) + charToInsert + line.Substring(9) : line);
    }
    File.WriteAllText(file, sb.ToString()); //overwrite modified content
}