找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2208|回复: 8

[求助] 【已解决】请问XData可以存多长的字符串呢

[复制链接]

已领礼包: 6个

财富等级: 恭喜发财

发表于 2018-4-13 11:16:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 newer 于 2018-4-14 16:32 编辑

由于以前是采用字典的存储方式,按顺序读写一个个不同的所需要的数据,这种方法现在看起来兼容性太差了,resbuf会越来越长,也不能删掉,不然以前的图就不能用了。
所以现在想用json库,将所有数据都用json来保存、解析,然后只需要保存一个string的数据就可以了,兼容性应该会得到极大改善。这样字典都不需要了,可以用XData来做,进一步提高效率。
现在就有一个问题,请问XData可以存多长的字符串,或者说AcDb::kDxfXdAsciiString,这个数据类型,在XData中可以存多长的字符串,跟string一样吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 19个

财富等级: 恭喜发财

发表于 2018-4-13 11:42:05 | 显示全部楼层
16K,看文献说的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 1 反对 0

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2018-4-13 11:21:47 | 显示全部楼层
XData
254个字符
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 1 反对 0

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2018-4-13 20:32:53 | 显示全部楼层
扩展数据是一个个resbuf以链表形式添加到实体的:
union ads_u_val {
    ads_real rreal;
    ads_real rpoint[3];
    short rint; // Must be declared short, not int.  
    char *rstring;
    long rlname[2];
    long rlong;
    struct ads_binary rbinary;
};
struct resbuf {
    struct resbuf *rbnext; // Linked list pointer  
    short restype;
    union ads_u_val resval;
};

没有查到每个resbuf最大可以达到多少字节的相关资料,经测试每个resbuf不能超过255字节!
每个实体可以添加的数据不超过16k(包括所有应用)。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6个

财富等级: 恭喜发财

 楼主| 发表于 2018-4-14 16:14:30 | 显示全部楼层
感谢上面朋友的回答!
既然resbuf存在字符的限制,现在我的一个想法是,仍然使用一个个resbuf分开储存数据,但是存的时候就不讲究顺序了,而是采用map的做法,以key+value的方式储存,读的时候,只需要遍历所有resbuf,然后用map保存数据即可,应该是会比原来的做法好很多的。

点评

除了扩展数据外,还有扩展词典啊,你可以添加任意的AUTOCAD支持的数据类型到扩展记录,添加到实体的扩展词典里面。这个就没限制了。  详情 回复 发表于 2018-4-14 16:31
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-4-14 16:31:15 | 显示全部楼层
b27117 发表于 2018-4-14 16:14
感谢上面朋友的回答!
既然resbuf存在字符的限制,现在我的一个想法是,仍然使用一个个resbuf分开储存数据 ...

除了扩展数据外,还有扩展词典啊,你可以添加任意的AUTOCAD支持的数据类型到扩展记录,添加到实体的扩展词典里面。这个就没限制了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6个

财富等级: 恭喜发财

 楼主| 发表于 2018-4-16 10:07:33 | 显示全部楼层
newer 发表于 2018-4-14 16:31
除了扩展数据外,还有扩展词典啊,你可以添加任意的AUTOCAD支持的数据类型到扩展记录,添加到实体的扩展 ...

不是,前面的朋友回答的不是resbuf的储存长度是256字节吗,字典里面的每个数据,其实也是resbuf呀,所以无论是拓展数据,还是拓展字典,其实都解决不了我说的需要使用一个长字符串储存数据的情况

点评

1、resbuf的定义,里面的字符串是 指针,并不是数组,所以一个字符串是否限制了255,应该是你存储的内容的类型决定的吧,比如保存文件名,就不能超过WIN系统的限制。任意的字符串是不会受255字节限制的吧 2、即使  详情 回复 发表于 2018-4-16 10:19
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 13个

财富等级: 恭喜发财

发表于 2018-4-16 10:19:03 | 显示全部楼层
b27117 发表于 2018-4-16 10:07
不是,前面的朋友回答的不是resbuf的储存长度是256字节吗,字典里面的每个数据,其实也是resbuf呀,所以 ...

1、resbuf的定义,里面的字符串是 指针,并不是数组,所以一个字符串是否限制了255,应该是你存储的内容的类型决定的吧,比如保存文件名,就不能超过WIN系统的限制。任意的字符串是不会受255字节限制的吧

2、即使有限制,字符串可以哟压缩算法啊,也可以分割,保存多个扩展记录就是了。用时候在合并和解压缩。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6个

财富等级: 恭喜发财

 楼主| 发表于 2018-4-16 10:22:58 | 显示全部楼层
LoveArx 发表于 2018-4-16 10:19
1、resbuf的定义,里面的字符串是 指针,并不是数组,所以一个字符串是否限制了255,应该是你存储的内容 ...

所以我现在的做法就是其实是先将数据储存起来,然后我合并成map再获取需要的信息,这其实跟我开始的思路用长字符串保存起来思路是一样的,都是先储存后解析
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-5-22 11:01 , Processed in 0.315047 second(s), 49 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表