我有我需要从拉个体值的文本文件。这样的一个例子是:
Name: John Doe
Key Length: 3
a90nm84ang9834n
90v84jgseidfrlg
f39048s9ipu4sdd
Random: true
我需要我的输出是这样的:
Visitor: John Doe
Key Value: a90nm84ang9834n90v84jgseidfrlgf39048s9ipu4sdd
现在,我把文件读入一个列表,并呼吁独立的价值,但是,这并不让我重新命名字符串的第一个值(例如名称 - >观众)。
我的真正的问题是在文件被读入该列表之后,是有可能进一步分裂各那些线的断开的定界符的并引用对1个部分?
编辑 - 下面是我使用的代码的样本,但它不会做什么,我试图做的:
string path = @"C:\temp\foo.txt";
List<string> lines = File.ReadAllLines(path).ToList();
Console.WriteLine("Filename: " + path);
Console.WriteLine("Length: " + lines[1]); //This outputs "Length: Key Length: 3"
假设你的数据全部被格式化为相同的......怎么是这样的:
private static void ParseDataFile(string dataFile)
{
var lines = File.ReadAllLines(dataFile);
for (var i = 0; i < lines.Length; i++)
{
if (lines[i].Contains("Name"))
{
Console.WriteLine($"Visitor: {lines[i].Remove(0, 6)}");
var keyLineCount = Convert.ToInt32(lines[++i].Remove(0, 12));
string key = string.Empty;
for (var j = 0; j < keyLineCount; j++)
{
key += lines[++i];
}
i++;
Console.WriteLine($"Key Value: {key}");
}
}
}
为了回答您的具体问题:是的,这是可能的分割在不同的时间不同的字符的字符串:
string s = "1234567890";
string[] parts1 = s.Split('5'); // 2 parts "1234" and "67890"
string[] parts2 = parts1[1].Split('7','9'); // 3 parts "6", "8" and "0"
等等