您如何解决此数据解析问题?

时间:2009-05-04 06:53:15

标签: c# f# protocols network-protocols

2 个答案:

答案 0 :(得分:1)

我认为F#非常适合通过歧视的联盟来表示此域中的消息;我想象的是。

type Message =
    | Message1 of string * DateTime * int * byte //name,timestamp,size,options
    | Message2 of bool * short * short * byte[]  //last,blocknum,blocksize,data
    ...

以及从/向字节数组解析/解析消息的方法。正如你所说,这项工作很简单,只是单调乏味。

我对消息的处理不太清楚,但总的来说,根据你的描述,听起来你已经掌握了它。

我有点担心你的'工具灵活性' - 你的约束是什么? (例如.Net,必须由熟悉X,Y,Z技术的程序员维护,必须满足某些性能标准,......)

答案 1 :(得分:1)

这是我的2美分(警告:我不知道F#):你有一个精确指定的输入文件, 即使有完整的语法。您希望将文件的内容映射到操作。因此,我建议你解析文件。 F#是一种函数式语言,它可能适合称为Recursive Descent Parsing的解析技术。 The book "Expert F#"包含对递归下降解析的讨论。