修复了在xml中配置位置的File to Object数组

时间:2013-03-06 20:47:21

标签: c# xml linq class configuration

我想将固定长度的文件转换为C#对象。例如,我有一个固定长度的文件,如

Input File
------------

SAM      DENVER      20
temp     texas       33

这表示名称,地点,年龄,长度10的名称,10长度的年龄2长度。

现在我正在为输入文件中的位置配置我的xml

配置XML

<Mapping>
<Name StartPosition ="1" Length ="10"></Name>
<Place StartPosition ="11" Length ="10"></Place>
<Age StartPosition ="21" Length ="2"></Age>
</Mapping>

我有一个类

类对象

public class InputFileConvertor
{
    public string Name{get;set;}
    public string Place{get;set;}
    public string Age{get;set;}

}

现在我的问题是如何将具有n个记录的此输入固定长度文件转换为InputFileConvertor的字符串数组。 应该采用XML文件中的所有预配置参数。

注意:我希望以更少的内存消耗来实现此功能。

1 个答案:

答案 0 :(得分:0)

首先,您需要从xml文件加载参数并将它们存储到如下变量中:

int nameStart;
int nameLenght;
int placeStart;
int placeLenght;
.....

阅读完文件后:

List<InputFileConvertor> inputList = new ......
string[] lines =System.IO.File.ReadAllLines(@"C:\Data.txt");

foreach(String line in lines)
{
   InputFileConvertor lineInput = new InputFileConvertor();
   lineInput.Name = line.Substring(nameStart,nameLenght);
   //maybe remove the white spaces with String.Trim() or Regex.Replace(text,@"s","");
   //fill also the other properties

   inputList.Add(lineInput);
}