我想将固定长度的文件转换为C#对象。例如,我有一个固定长度的文件,如
Input File
------------
SAM DENVER 20
temp texas 33
这表示名称,地点,年龄,长度10的名称,10长度的年龄2长度。
现在我正在为输入文件中的位置配置我的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文件中的所有预配置参数。
注意:我希望以更少的内存消耗来实现此功能。
答案 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);
}