首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

,怎么根据索引文件中的地址找到另外一个文件中的数据

2013-12-13 
求助,如何根据索引文件中的地址找到另外一个文件中的数据程序里有两个文件,一个索引文件(.inx),一个存入网

求助,如何根据索引文件中的地址找到另外一个文件中的数据
程序里有两个文件,一个索引文件(.inx),一个存入网络上接收到的字符串文件(.log)。
索引文件中存入的是一个结构体
typedef struct
{

        unsigned long ip; //发送端IP
        unsigned short port;  //发送端端口
         double time;    //接收端时间
        unsigned long pointer;  //偏移地址

}Inx;
现在我不知道这个偏移地址怎么放入数据,而且怎么根据偏移地址得到接收到的字符串。
[解决办法]
unsigned long是0~4394967295的正整数,直接赋值正整数就可以了

所谓的偏移地址,是指这个数据段相对于段首或上一段的字节数,你所给的信息并不完整,根据个人的揣测,.log文件存储的应该是不同时间和不同客户端发送来的数据,新数据是直接追加到文件尾部的

.inx文件中应该不止一个结构,而应该也是将结构序列化后不断追加到其尾部的

基于上面的假设,那么unsigned long pointer存储的就是:

1、写入当前数据之前.log文件的大小
假设已经存入了600个数据,那么取第100个,第100个的unsigned long pointer就数据的开始位置,数据长度就是:第101个结构的unsigned long pointer所记录的数值 -(减) 第100个的unsigned long pointer的数值

2、写完数据之后.log文件的大小
// 和上面的差不多
3、当前数据的长度等


,.log

[解决办法]
若每次添加的紀錄長度不一的話...建議樓主在結構體加一個長度項目~

因為很久沒有搞檔案操作了~ 大概會用到 append() . fseek()

热点排行