C++中的数据直接保存为二进制文件,长度可变的数据类型?该怎么处理

C++中的数据直接保存为二进制文件,长度可变的数据类型?
最近帮朋友2次开发了一个程序.是一个股票分析软件
遇到一个问题,他的源程序是用c++开发的,
没有源代码(原开发人员早散了,很多年前的程序),
现在需要生成供原来的程序导入用的数据文件.
我看了一下用原程序备份出的数据文件,
是2进制的,基本结构了解了一些.
数据头10位已经搞定,
0-3:证券所代码(占4位)
4-8:基金或股票代码
9-10:是描述后边还有几位的int型数据

剩下的就搞不定了,最长见的是35位(绝大多数都是35位,
最少的27位,最长的41位
这些数据中应该还包含:日期,开盘价,最高价,收盘价等

我很纳闷,c++中有变长的数据类型吗?
各基金需要的数据都是一样的啊.

尝试者生成了一个价格全是0的文件,
长度变成了23位,把开盘价改成1,长度变成了27.

全部价格为0的16进制数据
00000000h:   06   00   00   00   01   00   00   00   17   00   57   4D   43   31   35   36  
00000010h:   0A   DC   C4   50   04   1E   11   09   85   42   E1   90   D8   74   3E   15  
00000020h:   00    
开盘价为1的16进制数据
00000000h:   06   00   00   00   01   00   00   00   1B   00   57   4D   43   31   35   36
00000010h:   0A   DC   C4   50   00   01   00   3F   83   C2   E1   90   D8   74   3E   21
00000020h:   11   89   41   E0   00                

以上数据还包含有一个日期   2007-3-1-   9:35:00
这里只取了一个文件中的第一个基金的信息,
我对C++不熟悉,帮忙看看它的数据格式到底是什么样的.
万分感谢!




------解决方案--------------------
要想解析出来,要知道人家数据类型是怎样定义的,看数据没有定义成结构体(没有对齐),应该是连续的数据。比如说2007-3-1- 9:35:00,最常见的是分别定义成short、char、char、char、char、char型,但人家也可以都定义成short,或是int,所以生成数据字节数不同。所以如果你不清除每个参数占几个字节,没办法解析。
------解决方案--------------------
不是什么变长数据,只是利用字符串与字符串长度进行读取处理
06 00 00 00 //0-3:证券所代码(占4位)
01 00 00 00 //4-7:基金或股票代码
17 00 //8-9:是描述后边需要读取的字符串长度(多少字节)
后面据观察应该是一个变长字符串,其长度由前一个short整数决定,最后是
00// 字符串的结束符

所以关键是程序是把这个字符串读取后,其处理规则不清楚,我们也看不出什么名堂来,
而且那个日期时间格式也不知是以什么类型保存后转换为字符串的
如果日期时间是以time_t存放 "2007-3-1 9:35:00 "应该是“C4 2D E6 45”

------解决方案--------------------
最近也在分析一个股票软件“指南针”
主要是要提取关键字进行检测的
风马牛不相及。。。呵呵