我从客户端获取一个文本文件,该文件有多行,每行可以属于一个组。每个组都有特定的数据格式。每种数据格式定义哪一个字段将出现在一行中的特定位置。我需要重新格式化数据并为每一行添加细节。
例如,有3个组GroupA
,GroupB
,GroupC
,每个组格式由行号指定。
我会先知道GroupA
之前的ID是1-5,然后是6-8的空格和9-15的日期以及16-18的空格和19的组标识符(如A / B / C) )后跟空格和组特定数据。
文本文件格式:
1234G 21122013 A 12.34INR 160EUR -12.90Adj
1254G 21122011 B 12.34Adj 22122011 160EUR -12.90Adj
1264G 21122012 A 12.34INR 160EUR -12.90Adj
1274G 20122013 C FEECredit 12.34INR -12.90Adj 160EUR ABCDXYZ AAA
因此,通过读取每行的第19个位置,我可以识别该组,然后根据该组的字段结构处理该行。
阅读本文的最佳方式是什么?目前我正在考虑将信息存储在XML中,该信息将包含每个组的Field起始位置和字段长度。读取每一行我需要识别该组,然后选择XML中指定的正确XML和读取字段。
任何帮助将不胜感激,提前谢谢。
答案 0 :(得分:2)
我将使用的非XML方法是首先将所有行读入List<string>
,然后逐个处理这些行。通过在空格处分割每一行,您将在阵列中的相同索引中具有所有标识符(A / B / C)。检查此标识符并相应地处理该行的其余部分。这是一个简短的例子:
private void ProcessLines(List<string> lines)
{
// lines holds the previously read lines from the textfile
foreach (string line in lines)
{
string[] parts = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
if (parts[2] == "A")
{
// code to process a line of code in Group A, etc.
}
}
}