我的方法。核心是引擎。 - 页 98

 
作为如何做到这一点的提示,请看一下压缩文件的结构。它由简单的结构和数据组成。类似的结构可以很好地用于传输数据。请注意,在压缩文件中没有一行,这并不妨碍它完美地显示出一个微型的文件系统,其中有数百个不同名称的文件。
 
Vasiliy Sokolov:
作为如何做的提示,请看压缩档案结构。它由简单的结构和数据组成。一个类似的结构可以很好地用于数据传输。请注意,在压缩文件中没有一行,这并不妨碍它完美地显示出一个微型的文件系统,其中有数百个不同名称的文件。

我同意你对这项任务的专业看法。字节传输看起来比通过MT对象的字符串传输更严重。

问题是实施起来的可行性如何。

要传输的数据的大小和类型是事先不知道的。如何实施?

 
Реter Konow:

我同意你对这项任务的专业看法。字节传输看起来比通过MT对象的字符串传输更严重。

问题是实施起来的可行性如何。

要传输的数据的大小和类型是事先不知道的。如何实施联盟?

这是有可能的。

请详细研究你的拉链的结构。谅解会到来。打包前的文件大小是不知道的。文件的名称可以是不同长度的。文件的数量也可以有很大不同。不管怎么说,zip代表了一个严格类型的引用数据的有限结构集。

当你弄清楚你需要使用哪些结构时,你就不会在union方面有任何问题了,因为union只是将这些结构作为字节来表示。

 
Vasiliy Sokolov:

可能的。

详细研究拉链的结构。谅解会到来。包装前的文件大小在那里是未知的。文件名可以有许多不同的长度。文件的数量也可以有很大不同。不管怎么说,zip代表了一个严格类型的引用数据的有限结构的集合。

当你弄清楚你需要处理哪些结构时,你就不会有任何问题了,因为你可以简单地将这些结构表示为字节。

好吧,但为什么你不做没有工会的事,比如说?

在每个事件中,EA收集一个信息字符串,其中包括所有改变的参数及其所有类型的值。然后我们用StringToChar将这个字符串 转换为字节数组,并将其写入资源中。然后,我们进行反向拆包。

起初,我曾想象过这样一种资源的解决方案。但是,它需要组装和分割字符串。

 
反正你的解决方案中不能没有资源。因此,问题是如何绕过解析字符串的问题。你认为这是有可能的。老实说,我很怀疑这一点。但我不排除它的可能性...
 
Реter Konow:

好吧,但为什么不做没有工会的事,比如说。

在每个事件中,EA收集一个信息字符串,包括所有改变的参数和它们的所有类型的值。然后我们用StringToChar将这个字符串转换为字节数组,并将其写入资源中。然后,我们进行反向拆包。

起初,我曾想象过这样一种资源的解决方案。但是,它需要组装和拆分字符串。

联盟是将结构同时表示为字节或int,这是同样的事情。Union似乎将结构投射到字节数组上,而字节数组同时又是一组结构。如果资源是一个int数组,就不需要执行将字节数组转换为结构数组的额外程序和反向操作。这样可以节省时间。

p.s. 在这种方案下,消息源不会将数据复制到资源中,而是直接改变数据,这些改变会立即出现在资源中。因此,你不用无休止地将字符串 转换为数组,又将数组转换为字符串并进行后续解析,而是直接处理数据。这些数据只复制给使用ResourceReadImage的接收者。

 
Vasiliy Sokolov:

联盟是将结构同时表示为字节或int,这是同样的事情。Union是将结构投射到字节数组上,而字节数组同时也是一组结构。如果资源是一个int数组,就不需要执行将字节数组转换为结构数组的额外程序和反向操作。它节省了时间。

我得考虑一下...也许你是对的,而且有可能用工会来实施。

例如,如果每次设置一个参数值,都会将该值转换为一个字节数组。更确切地说,所有的用户参数,都应该属于联盟。然后,他们反映在字节中的副本将立即可用于写入资源。

 
Реter Konow:

例如,如果每次设置一个参数值,将 该值转换成一个字节数组。更确切地说,所有的用户参数都必须属于联盟。然后,他们的字节反映的副本将立即可用于写入资源。

是的,没错,我已经在ps中回复了前一个帖子,当你写的时候:)也就是说,我们的工作不是长时间的复制和转换,而是完全的映射

 
简而言之,每次改变用户参数值时,必须将该值转换为单位变量的值,并立即保存到一个普通的字节数组中,然后将其转换为uint并写入资源中。
 
Vasiliy Sokolov:

是的,没错,当你写下这句话的时候,我已经在ps中回复了前一个帖子:)也就是说,我们的工作不是长时间的复制和转换,而是完全的映射

好的,但是文本呢?

它们必须通过StringToChar() 转换为字节。你不能使用工会,对吗?