gpt4 book ai didi

c++ - 分隔文本文件中的数据

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:00:31 24 4
gpt4 key购买 nike

我有一大块数据 (hexdump),其中包括数千张小图像,数据结构是这样的。

20 00 20 00 00 10 00 00 <data> 20 00 20 00 00 10 00 00 <data> ...

其中 (20 00 20 00 00 10 00 00) 是每个数据(图像)部分之间的分隔。

包含整个 hexdump 的文件 myfile 看起来像这样

3C 63 9E FF 38 5F 9E FF
31 59 91 FF 20 00 20 00
00 10 00 00 55 73 A2 FF
38 5D 9C FF 3A 5E 95 FF

我想做的基本上就是把它分开。我想把用 20 00 20 00 00 10 00 00 分隔的部分放在一个 txt 文件中作为 1.txt, 2.txt ... n.txt

我尝试按行阅读,但它会导致一些问题,因为 20 00 .. 部分在某些情况下可以在 2 行中找到,例如上面的示例,因此它不会找到所有出现的地方。

while (getline(myfile,line,'\n')){
if (line == "20 00 20 00 00 10 00 00")
...
}

最佳答案

我的建议是读取二进制文件。如果足够小你可以一次全部读入内存,否则我建议你使用操作系统map the file into memory (或者至少是它的一个“窗口”)。

然后很容易找到分隔记录的 8 字节序列。首先简单地搜索 0x20,只要找到它,您就可以查看它是否是整个分隔符序列的开始。

当你找到分隔符序列时,你取前一个分隔符的保存位置,和新找到的分隔符的位置,中间的数据就是你想要的数据。将新找到的分隔符位置保存为旧位置,继续寻找下一个分隔符。

关于c++ - 分隔文本文件中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37829520/

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