我有一个文本文件,用户通过OpenFileDialog上传到应用程序然后当文件打开时程序正在逐行读取它:
string[] data = File.ReadAllLines(file);
如何对每一行进行动态编辑,以便在第N个数字或字母后面放一个空格,然后将结果显示给用户而无需覆盖该文件,
例如:
如果我的文件包含:
0000000000BADBAD
2323040007BADAAD
4234420087BADBAC
显示应该是
0000000000 BADBAD
2323040007 BADAAD
4234420087 BADBAC
答案 0 :(得分:1)
将所有行读入字符串数组data is isolated from your file i.e. any modification in data won't be reflected into your file
后。你可以像任何其他对象一样操纵它。
操纵数据和实现结果的方法之一是:
foreach (string value in data)
{
Console.WriteLine(value.Insert(10, " "));
}
答案 1 :(得分:0)
您可以查看您的行并使用Regex提取数据,例如:
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);
在输出上写下result
。
另一种选择是使用Linq
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);