首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Quickfixj删除BodyLength字段(标记9)或CheckSum字段(标记10)

如何使用Quickfixj删除BodyLength字段(标记9)或CheckSum字段(标记10)
EN

Stack Overflow用户
提问于 2013-06-13 22:17:48
回答 1查看 1.2K关注 0票数 2

我是快速修复和java的初学者。

通常,当我想移除快速修复消息中的字段时,我使用带有标记的removeField方法作为参数,但这似乎不适用于自动生成的两个字段-- BodyLength (tag 9)和CheckSum (tag 10)。

例如,我创建了一条消息,然后打印。

代码语言:javascript
运行
复制
System.out.println(message)

给出

8=FIX.4.29=8635=149=WFSComp23452=20130613-21:45:22.28256=ClientComp1234109=default112=default10=067

然后,我移除一个字段,例如标记号8,下面的内容如下:

代码语言:javascript
运行
复制
message.getHeader().removeField(8);

再打印一次,我得到

9=7435=149=WFSComp23452=20130613-22:06:32.81956=ClientComp1234112=default10=105

字段被移除的位置,但当我试图以相同的方式删除9标记时:

代码语言:javascript
运行
复制
message.getHeader().removeField(9);

在不移除字段的情况下,打印时的输出生成相同的代码:

9=7435=149=WFSComp23452=20130613-22:06:32.81956=ClientComp1234112=default10=105

九块地还在那里!

我猜是因为quickfix会自动生成车身长度,但是如何删除它呢?谢谢。

指向快速修复的链接:

javadoc:http://www.quickfixj.org/quickfixj/javadoc/1.5.3/

http://www.quickfixj.org/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-14 00:50:01

是的,QuickFIX自动生成BodyLength和校验和。

我无法想象为什么在世界上你认为你需要删除这些字段,但是如果你真的想要删除这些字段的消息字符串,你可以用一个在事实之后应用的正则表达式来实现它:

代码语言:javascript
运行
复制
message.toString().replaceAll("\09=[0-9]*","").replaceAll("\010=[0-9]*","")

不过,我也不认为有什么好的理由这么做。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17098126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档