1

我想将固定长度的文件转换为 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 文件中的所有预配置参数。

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

4

1 回答 1

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);
}
于 2013-03-06T23:41:23.863 回答