我正在编写一个程序来解析几个分隔的平面文件,它需要几个列。我不确定在将来更改输入平面文件格式的情况下,使代码易于维护/更新的最佳方法。
目前我有一组表格的常量内容(还有更多这些内容):
NameListFirstNameCol = 0;
NameListLastNameCol = 1;
NameListAgeCol = 2;
ClassListRoomNumCol = 0;
ClassListRoomNameCol = 1;
以及分隔符的常量,例如:
NameListDelim = ',';
ClassListDelim = '\t';
我想知道是否有人建议更好地跟踪这类信息。 (我可以假设我需要的列将始终在输入中,但输入的创建者可能会更改分隔符,添加新列或重新排序列)。这是一个数据分析脚本,它将看到一些重用,但不是主要的生产软件。
答案 0 :(得分:0)
以下是一些有趣的信息:
Importing CSV file into Database with Schema.ini
特别是部分每次使用不同的CSV文件名或导入CSV文件 动态创建Schema.ini文件可能看起来很有希望。
答案 1 :(得分:0)
首先,您必须创建一个包含文件名字段和相应索引的列表。
例如,Dictionary< string,int>用于保存您可以从文件的第一行读取的名称。拥有列名和相应索引的列表,您可以使用string.Split仅使用您需要的索引来解析后续行。
您还必须存储结构所需的列列表。为了便于维护,您可以将其保存为单独的.cs文件中的单独类。
答案 2 :(得分:0)
我编写了一个名为JRecordBind的库,它使用XML Schema描述平面文件的结构。请参阅one of the examples。
不幸的是,它是用Java编写的。你可以考虑移植它。拥有C#版本
会很棒