删除文本文件中每行第 n 个位置的字符
Delete character at nth position for each line in a text file
我的文件夹中有多个文本文件。我需要删除文本文件中每行第 8 个字符处的字符。文本文件有 100 多行
我该如何操作?
原始文件示例:
123456789012345....
abcdefghijklmno....
新文件:
12345679012345
abcdefgijklmno
阅读这篇文章很有帮助:
注意:文本行的长度可以变化(不确定这是否重要 - 一行可以有 20 个字符,下一行可以有 30 个字符,等等。
所有文本文件都在文件夹中:C:\TestFolder
类似问题:
您可以使用 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 个字符到结尾)。
请注意,字符位置是从零开始索引的!
我的文件夹中有多个文本文件。我需要删除文本文件中每行第 8 个字符处的字符。文本文件有 100 多行
我该如何操作?
原始文件示例:
123456789012345....
abcdefghijklmno....
新文件:
12345679012345
abcdefgijklmno
阅读这篇文章很有帮助:
注意:文本行的长度可以变化(不确定这是否重要 - 一行可以有 20 个字符,下一行可以有 30 个字符,等等。 所有文本文件都在文件夹中:C:\TestFolder
类似问题:
您可以使用 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 个字符到结尾)。
请注意,字符位置是从零开始索引的!