如何使用动态分隔符解析文本文件

时间:2012-04-28 09:05:04

标签: c# parsing

文本文件的格式(为清晰起见,用点代替空格):

1....2...23....a....5
3.........4...bc...35

需要将此文件解析为锯齿状数组,如下所示:

{
    {"1", "2", "23", "a", "5"},
    {"3", "", "4", "bc", "35"}
}

任何人都有想法如何做到这一点?

更新

最小空格数为3 订单项可以有不同的宽度

ae18...1,1234....5,567.....-2,5
ae140....1,12...0,5673.....-2,3
aw1.............0,3573...-1,545

3 个答案:

答案 0 :(得分:2)

查看您的示例,您的输入文本文件似乎使用fixed width或平面文件格式。如果是这样,根据需要将文件解析为多维数组的简单策略是读取文件的每一行,为每一行获取不同的固定列,然后修剪掉前导空格。

# Read next line from file
String line = readNextLineFromYourFile();
# Store the parsed line in a list of strings
List<String> parsedLine = new List<String>();
# Extract fixed width parts of the line, trim away whitespace and store in parsed line
parsedLine.Add(line.Substring(0,1).Trim());
parsedLine.Add(line.Substring(1,5).Trim());
parsedLine.Add(line.Substring(1,5).Trim());
# Store parsed line in the result
result.Add(parsedLine);

答案 1 :(得分:1)

将FileHelpers引擎用于固定分隔的http://www.filehelpers.net/

答案 2 :(得分:0)

使用正则表达式识别字母数字表达式。

相关问题