0

我正在尝试制定一个可靠的策略来解析具有嵌入式完整性符号的二进制数据。以下是EBNF形式的构造规则:

Log ::= {Data};
Data ::= Key,DataList;
DataList ::= {Structure};

问题是 Key 可以出现在 DataList 中 - 它不是转义码。我想不出比蛮力方法更好的算法了:

-Index all Key locations
-foreach key, start trying to parse Structure
- if structure parse fails - try next key location // possible to lose good data

有谁知道做这样的事情的好策略?如果记录损坏,我正在尝试将数据丢失降至最低。

欢迎任何见解!

4

1 回答 1

2

我最终做的是将标题放在数据上,而不仅仅是键。标头具有同步块、CRC 和长度。这使得它具有相当的容错性。任何损坏都将仅限于损坏所在的消息。解析策略是定位所有同步块,解码以下标头并尝试解析出数据。失败表示同步块上的误报或记录实际上已损坏。

于 2013-12-15T17:46:40.383 回答