修正阅读重复组
本文关键字: | 更新日期: 2023-09-27 18:03:16
我有一个FIX日志文件。我在逐行迭代,将每个字符串放入
Message m = new Message(str, false)
因为某些原因,验证在文件上失败(甚至第一行)。现在,我看到它是一个35=X类型,268=4(即NoMDEntries=4,所以我应该在消息中有4组)
但是,在调试显示中我没有看到任何组。m.base。_groups的计数为0
所讨论的字符串是:
1128=9 | 9=363 | 35=X | 49=CME | 34=3151 | 52=20121216223556363 | 75=20121217 | 268=4 | 279=0 | 22=8 | 48=43585 | 83=902 | 107=6EH3 | 269=4 | 270=13186 | 273=223556000 | 286=5 | 279=0 | 22=8 | 48=43585 | 83=903 | 107=6EH3 | 269=E | 270=13186 | 271=9 | 273=223556000 | 279=0 | 22=8 | 48=43585 | 83=904 | 107=6EH3 | 269=F | 270=13185 | 273=223556000 | 279=1 | 22=8 | 48=43585 | 83=905 | 107=6EH3 | 269=0 | 270=13186 | 271=122 | 273=223556000 | 336=0 | 346=10 | 1023=1 | 10=179 |
另一件事是我如何读取组?本能地,我想做一些像
for (int i = 1; i <= noMDEntries; i++) {
Group g = m.GetGroup(i);
int action = Int32.Parse(g.GetField(279));
....
}
但这不是它是如何工作的,我还没有找到更好的解释文档。
谢谢你的帮助,Yonatan .
从你的代码片段来看,我认为你使用的是QuickFIX/n,原生c#实现,所以我将相应地回答。
1)您的消息构造失败,因为您没有提供数据字典。
用Message::FromString
代替:
Message m = new Message();
m.FromString(msg_str, false, data_dic, data_dic, someMsgFactory);
更好的是,使用MarketDataIncrementalRefresh::FromString
来获得正确的返回类型。
你可以在这里看到这个函数的一些用法:
https://github.com/connamara/quickfixn/blob/master/UnitTests/MessageTests.cs
2)读取组…嗯,QF/n对此有一个文档页面,我认为它解释得很好。
http://quickfixn.org/tutorial/repeating-groups