求助:二进制文件读取
二进制文件读取各位大虾:
我有一个二进制文件,知道其中的部分数据结构,并且我只需要这部分的数据,请问怎么读出并以文本文件保存。
1、这个二进制文件包含了数十种文件记录,但每个记录都有一个共性:以STX(ASC码为0x02h)开始并以ETX(ASC码为0x03h)结束;
2、每种记录以特殊的标记表示记录开始,我所熟知的这种记录以0x44h开始。
该二进制文件的结构示意图如下(红色表示我所关心的数据):
n种数据记录+4个字节(表示我关心的记录的大小)+记录开始码(0x02h)+我关心的数据记录开始码(0x44h)+数据结构(循环n次)+记录结束码(0x03h);
我所关心的数据结构为:
struct rawdata
{unsign short PingCount
unsign short Heading
unsign short SoundVelocity
unsign short DepthOfDucer
unsign char NumOfbeams
unsign char NumValbeams
unsign char ResOfDepth
unsign char ResOfDistance
unsign chort SampleRate
//一下结构需循环N次
short Depth[N]
short AcrossTrack[N]
short AlongTrack[N]
short BeamAngle[N]
unsign short BeamAzimuth[N]
unsign short Range[N]
unsign char QualFactor[N]
unsign char NumOfBeam
};
其中N由NumValbeams决定。