gpt4 book ai didi

c++ - 二进制到 csv 解析器设计

转载 作者:行者123 更新时间:2023-11-30 19:27:09 25 4
gpt4 key购买 nike

目的是制作一个二进制到 csv 解析器。我有一个二进制文件,其中包含来自微 Controller 的命令/响应数据包。大约有30-40种命令类型。命令包的结构各不相同。要了解命令的类型,您必须查看命令类型的前几位。使用此命令类型,您必须识别命令的结构(它应该显示数据包中各个字段的含义以及如何将这些字段转换为 csv 数据,如 int、char、string,有时还有一些特定的函数来处理某些字段,然后转换)。

我已经运行了一个读取器线程和写入器线程,它们将二进制数据从磁盘复制到输入缓冲区,并将二进制数据作为 csv 文件从输出缓冲区复制到磁盘。我必须设计一个中间解析器线程,它从输入缓冲区获取二进制数据并将其转换为 csv 并将其推送到输出缓冲区。

编码必须用C/C++(最好是C)完成,性能是重中之重。我正在从如何存储这些命令类型结构以及如何根据这个快速访问和解析数据的角度来寻找这个解析器的架构。可以快速完成此操作的第三方软件也可以。

最佳答案

对于 C++,您可以使用 std::map 并将命令值与处理该命令的函数指针(或函数对象)相关联。

在 C(和 C++)中,您可以使用命令和函数指针表。在表中搜索命令,然后通过取消引用函数指针来执行关联的函数。对于大型命令集,可以使用upper_boundlower_bound来查找命令(对于小型数据集,线性搜索具有更好的性能)。您可以将表存储在只读存储器中。

关于c++ - 二进制到 csv 解析器设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56006960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com