C# 读、编辑、写文件。

C# 读、编辑、写文件。,c#,visual-studio-2010,C#,Visual Studio 2010,我有一个文本文件,用户通过OpenFileDialog上传到应用程序,然后当文件打开时,程序使用以下命令逐行读取: string[] data = File.ReadAllLines(file); 如何对每一行进行动态编辑,以便在第n个数字或字母后放置一个空格,然后将结果显示给用户,而无需在文件上书写 例如: 如果我的文件包含: 0000000000BADBAD 2323040007BADAAD 4234420087BADBAC 显示器应该是 0000000000 BADBAD 23230

我有一个文本文件,用户通过OpenFileDialog上传到应用程序,然后当文件打开时,程序使用以下命令逐行读取:

string[] data = File.ReadAllLines(file);
如何对每一行进行动态编辑,以便在第n个数字或字母后放置一个空格,然后将结果显示给用户,而无需在文件上书写

例如:

如果我的文件包含:

0000000000BADBAD
2323040007BADAAD
4234420087BADBAC
显示器应该是

0000000000  BADBAD
2323040007  BADAAD
4234420087  BADBAC

将所有行读入字符串数组后,
数据将与文件隔离,即数据中的任何修改都不会反映到文件中
。您可以像处理任何其他对象一样对其进行操作

操作数据并获得结果的方法之一是:

foreach (string value in data)
{
    Console.WriteLine(value.Insert(10, " "));
}

您可以循环行并使用正则表达式提取数据,例如:

string str = "0000000000BADBAD";

var match = Regex.Match(str, @"(?<Number>\d+)(?<Text>.*)");

var number = match.Groups["Number"].Value;
var text = match.Groups["Text"].Value;

string result = String.Format("{0} {1}", number, text);
请看
string str = "0000000000BADBAD";
int n;

string number = String.Join("", str.TakeWhile(c => int.TryParse(c.ToString(), out n)));
string text = String.Join("", str.SkipWhile(c => int.TryParse(c.ToString(), out n)));

string result = String.Format("{0} {1}", number, text);