主页
Top.Mail.Ru Yandeks.Metrika
论坛:“主要”;
当前存档:2004.12.12;
下载:[xml.tar.bz2];

向下

将记录或类保存为二进制 找到类似的分支


Maxim____   (2004-11-15 01:45) [0]

您好!
我从耳边听到你可以将结构(也许是类)保存为blob。 告诉我在哪里挖,
问题是,如果结构发生了一些变化,会发生什么?
当然,xml在这里是不可替代的,但是blob更紧凑和不透明,这正是你所需要的。



Maxim____   (2004-11-15 19:20) [1]

好人们就这个话题说些什么。



Суслик ©   (2004-11-15 19:24) [2]


>我从耳边听到结构可以保存(或者可能
>是类)像blob一样

在blob中你可以保存你想要的一切。

在一般情况下,不可能只在blob中保存记录(也适用于类),因为 它可能包含引用类型,例如长字符串。

有必要分别保存和读取记录的每个元素。



Rem ©   (2004-11-15 19:27) [3]

有什么问题吗?
记录占用了一块记忆。
留住这段记忆。

>>如果结构发生了变化?
它在哪里改变了?



Maxim____   (2004-11-16 01:06) [4]

>问题是什么?
>记录占用了一块记忆。
>保存这个记忆。

抱歉无知
怎么办?
或者在哪个帮助部分阅读有关如何执行此操作的信息?



Amoeba ©   (2004-11-16 11:37) [5]


> Rem©(15.11.04 19:27)[3]
>问题是什么?
>记录占用了一块记忆。
>保存这个记忆。


但是如果记录字段中有长字符串或动态数组? 什么呢? 见。 Gopher©(15.11.04 19:24)[2]



PVOzerski ©   (2004-11-16 12:13) [6]

恕我直言,您可以考虑使用TStream.ReadComponent和TStream.WriteComponent。 当然,物体和属性不再适用。



Maxim____   (2004-11-26 16:17) [7]

我的结构与动态数组等很复杂。
但你真的需要保存它..

我不知道如何访问简单记录的二进制形式
例如,由数字和字符串组成,没有数组?

第二个问题。
如何枚举记录或类的元素。
是可能的
如果tclass()。元素[0]是整数然后...... :)
或者这是胡说八道?

等待你聪明的想法!



Digitman ©   (2004-11-26 16:25) [8]


> Maxim____(26.11.04 16:17)[7]


恰好投掷nafih“手推车投掷”并坐在“智能”书籍。
并且一劳永逸地为自己澄清什么实际上构成了这种或那种变量的内容。

没有它没有。



Ken   (2004-11-26 16:34) [9]


>我的结构与动态数组等很复杂。
>但你真的需要保存它..

如果您确实需要保存,请尝试将结构调整为固定大小,同时修复每个变量的大小!

用“记录”类型描述整个结构 记录 并保持安全! Savetofile ... LoadfromFile

但请记住,你需要记录类型中的每个变量都有一个固定的大小,也就是说,你必须从字节数组中放弃String变量(使用String [n],其中n是它的长度)(必须使用数组[0] ..n]的字节)等等。



cae ©   (2004-11-26 16:51) [10]

在这里,举个例子:
类型 TMyClass = class Field1:整数; Field2:双倍; Field3:String; 过程WriteStream(Strm:TStream); 过程ReadStream(Strm:TStream); 结束; ................... procedure TMyClass.WriteStream(Strm:TStream); VAR 作家:TWriter; 开始 Writer:= TWriter.Create(Strm,4096); 尝试 和作家一起做 开始 WriteInteger(Field1); WriteFloat(Field2); WriteString(Field3); 结束; //与作家 最后 Writer.Free; 结束; 结束; procedure TMyClass.ReadStream(Strm:TStream); VAR 读者:TReader; 开始 Reader:= TReader.Create(Strm,4096); 尝试 与读者一起做 开始 Field1:= ReadInteger; Field2:= ReadFloat; Field3:= ReadString; 结束; //用Reader 最后 Reader.Free; 结束; 结束;



Страницы: 1 整个分支

论坛:“主要”;
当前存档:2004.12.12;
下载:[xml.tar.bz2];

楼上









内存:0.59 MB
时间:0.101 c
4-1099238292
阿诺德
2004-10-31 18:58
2004.12.12
在TEdit中对齐


3-1100008965
牛年-Pizrak
2004-11-09 17:02
2004.12.12
所有问题都来自Access?....


3-1100082557
alsov1
2004-11-10 13:29
2004.12.12
我不能让TADOQuery过滤


4-1099046847
学生KNTU
2004-10-29 14:47
2004.12.12
WIN API +监视器


1-1101452426
sergg
2004-11-26 10:00
2004.12.12
BitBtn题字分为两行





南非荷兰语 阿尔巴尼亚人 阿拉伯语 亚美尼亚 阿塞拜疆 巴斯克 白俄罗斯 保加利亚语 加泰罗尼亚 简体中文 中国(繁体) 克罗地亚 捷克 丹麦语 荷兰人 英语 爱沙尼亚语 菲律宾人 芬兰 法文
加利亚西语 格鲁吉亚语 德语 希腊语 海地克里奥尔语 希伯来语 印地语 匈牙利 北日耳曼语 印度尼西亚人 爱尔兰语 意大利语 日本性玩偶 韩语 拉脱维亚 立陶宛 马其顿 马来语 马耳他语 挪威语
波斯语 波兰语 葡萄牙语 罗马尼亚 俄语 塞尔维亚 斯洛伐克 斯洛文尼亚 西班牙语 斯瓦希里 瑞典语 泰国人 土耳其 乌克兰 乌尔都语 越南人 威尔士语 意第绪语 孟加拉 波斯尼亚
宿务 世界语 古吉拉特语 豪萨语 苗族 伊博 爪哇 卡纳达语 高棉 老挝 拉丁语 毛利 马拉 蒙古人 尼泊尔 旁遮普 索马里 泰米尔人 泰卢固语 约鲁巴语
祖鲁
英文 Французский Немецкий Итальянский Португальский 俄文 Испанский