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