为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
慕勒3428872 2022-12-31 13:29:32
我有文本文件,我需要在文本文件中每行的第 8 个字符处添加一个空格。文本文件有 1000 多行我将如何进行?原始文件示例:123456789012345.... abcdefghijklmno....新文件:12345678 9012345 abcdefgh ijklmno阅读这篇文章很有帮助:在字符串的每一行添加一个字符注意:文本行的长度可以是可变的(不确定是否重要,一行可以有 20 个字符,下一行可以有 30 个字符,等等。所有文本文件都在文件夹中:C:\TestFolder类似问题:删除文本文件中每行第 n 个位置的字符
查看完整描述

1 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

您不需要在这里使用正则表达式。一种简单的方法是使用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

}


查看完整回答
反对 回复 2022-12-31
  • 1 回答
  • 0 关注
  • 66 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信