如何解决构造中的动态长度/大小字段
my_struct = construct.Struct(
"data_length_in_bytes" / construct.Int32ub,"login" / construct.CString("ascii"),"password" / construct.CString("ascii"),"foo" / construct.Int32ub,"bar" / construct.Int32ub,"baz" / construct.Int8ub
)
)
是否有一种方法可以根据另一个字段的大小(加上其自身的4个字节)动态生成/计算data_length_in_bytes
字段的内容?
还是我应该使用没有data_length_in_bytes
的Struct,然后在转换之后/之前在字段中添加/删除字段?
解决方法
尝试使用 Prefixed
类。它需要两个参数。第一个是 Field
指定如何以字节为单位存储大小,第二个是要存储的内容。
所以在这种情况下,你会写:
my_struct = construct.Prefixed(construct.Int32ub,construct.Struct(
"login" / construct.CString("ascii"),"password" / construct.CString("ascii"),"foo" / construct.Int32ub,"bar" / construct.Int32ub,"baz" / construct.Int8ub
))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。