免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345下一页
最近访问板块 发新帖
查看: 8577 | 回复: 45
打印 上一主题 下一主题

数据结构保存问题!急!(高手请进) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-10 17:03 |只看该作者 |倒序浏览
现在在工程中已经有了一套数据结构(比如树).现在需要用其他的工程来用这套结构中的数据,及每个对象间的关系.
我知道现在的文件只能保存数据(比如struct中的变量等),但如果变量成员中有指向其他对象的指针,也就是是他们之间是有联系的.该如何实现其保存呢?

如果用fread/fwrite来处理,只能保存数据,不知道这些对象(或结构)之间的关系该如何保存下来让后续工程直接利用呢?

万分感谢!!

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
2 [报告]
发表于 2007-10-10 18:52 |只看该作者
将用非线性数据结构保存的数据先线性化, 然后写入文件, 后面的代码要使用这些数据, 将这个过程反着做一遍即可.

BTW, 可以参考通过网络传输通过复杂数据结构保存的数据的实现方法.

论坛徽章:
0
3 [报告]
发表于 2007-10-10 19:02 |只看该作者

回复 #2 MMMIX 的帖子

谢谢你了!老大!
当时也是考虑到时间紧迫,所以不想用网络来连接.
现在我倒是要看看数据结构线性化方面的东西了!等有了问题再来请教!

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
4 [报告]
发表于 2007-10-10 19:05 |只看该作者
原帖由 3018857 于 2007-10-10 19:02 发表
谢谢你了!老大!
当时也是考虑到时间紧迫,所以不想用网络来连接.
现在我倒是要看看数据结构线性化方面的东西了!等有了问题再来请教!

很简单的, 基本就是写/读双方约定好就可以了.

论坛徽章:
0
5 [报告]
发表于 2007-10-10 19:32 |只看该作者
跟网络协议是一个道理,双方说好,第一个字节是什么意思,第二个字节是什么意思。。。。。。。。等等

论坛徽章:
0
6 [报告]
发表于 2007-10-10 22:11 |只看该作者

回复 #4 MMMIX 的帖子

不懂!约定好了就没有意思了吧。读方根本就不知道写方数据结构的任何信息,如果用而进制文件只能将保存的数据提取出来,而指针变量没法知道啊!而且数据结构的节点也在变化啊,每次都不定,当保存下来,每次读的时候该怎么读呢?真是太郁闷了!

例如:
   写方有三层数据,每次数据都有联系,我把每个节点可以保存下来,但该怎么保存呢,因为它们的大小不同,读取的时候也不知道现在读的是谁,读完没有,该类型一共有几个。

你说的约定能给稍微具体点吗?是说我该用到其他的工具吗还是要对二进制文件的存法有处理呢,等等!!

[ 本帖最后由 3018857 于 2007-10-10 22:17 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2007-10-10 22:13 |只看该作者

回复 #5 cugb_cat 的帖子

你说的约定能给稍微具体点吗?是说我该用到其他的工具吗还是要对二进制文件的存法有处理呢,等等!!对于字节我怎么规定呢?谢谢!

论坛徽章:
26
处女座
日期:2016-04-18 14:00:4515-16赛季CBA联赛之深圳
日期:2020-06-02 10:10:5015-16赛季CBA联赛之广夏
日期:2019-07-23 16:59:452016科比退役纪念章
日期:2019-06-26 16:59:1315-16赛季CBA联赛之天津
日期:2019-05-28 14:25:1915-16赛季CBA联赛之青岛
日期:2019-05-16 10:14:082016科比退役纪念章
日期:2019-01-11 14:44:062016科比退役纪念章
日期:2018-07-18 16:17:4015-16赛季CBA联赛之上海
日期:2017-08-22 18:18:5515-16赛季CBA联赛之江苏
日期:2017-08-04 17:00:4715-16赛季CBA联赛之佛山
日期:2017-02-20 18:21:1315-16赛季CBA联赛之天津
日期:2016-12-12 10:44:23
8 [报告]
发表于 2007-10-11 11:05 |只看该作者
约定好预先读取几个字节,然后将这段字节强制转化为约定好的数据结构。

论坛徽章:
0
9 [报告]
发表于 2007-10-11 11:54 |只看该作者
用广义表,或者干脆用XML。

论坛徽章:
0
10 [报告]
发表于 2007-10-11 12:12 |只看该作者

回复 #8 evaspring 的帖子

我的要求是第一个工程关闭后,将整个数据保存下来,然后再启动令一个数据处理的工程来处理数据。
他们之间能约定好数据结构吗?应该没办法吧!比如一个树,最底层的节点每次保存的数目是不同的,如何约定呢?是不是事先把文件分块,然后往里面扔东西,取的时候就按事先的地址来取!???
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP