在一个OBJ_TEXT对象中,是否可以在多行上输出文本? - 页 6

 
Реter Konow:
你可以使用ResourceReadImage从一个资源中读取数据,但要做到这一点,你必须使用ResourceCreate将其写入那里。ResourceCreate函数只接受一个uint数据的数组,所以如果我们需要写一个其他数据类型的数组,我们必须使用union。在其中声明几个不同类型的数组。之后,我们可以在资源中存储任何数据,包括字符串。要将字符串转换为char类型,请使用StringToCharArray,反之则使用CharArrayToString。因此,这根本不是关于画布的问题,而是关于资源的问题,你可以在联合体的帮助下向其中写入任何类型的数据。

谢谢你的答复。这正是我认为的世纪之谜。如果你不介意,请提供更多相关细节。

使用ResourceCreate从uint数据中创建了资源,但读取资源却没有结果。如果你读了下面的意见,你就会明白我为什么放弃了,但你给了我希望。

 
Alexey Viktorov:

谢谢你的答复。这正是我认为的世纪之谜。如果你不介意,请提供更多相关细节。

使用ResourceCreate从uint数据中创建资源,但读取资源时没有成功。如果你读了下面的意见,你就会明白我为什么放弃了,但你给了我希望。

彼得不是这么说的:)。他在自己的波长上。他概述了一个关于如何通过资源在EA之间交换数据 的方案。

这与你认识帆布铭文的任务没有关系......。

 
Andrey Barinov:

彼得不是这么说的:)。他在自己的波长上。他概述了一个关于如何通过资源在EA之间交换数据的方案。

这与你从Kanvas识别标题的任务无关......

我不排除我的问题措辞不太正确的事实。

如果我创建了一个资源,它就会被保存,或者我可以强制保存它。然后读它。准确地阅读资源,正如最初的问题中所述。

关于交易、自动交易系统和策略测试的论坛

是否可以在OBJ_TEXT对象中分多行输出文本?

Alexey Viktorov, 2019.08.05 09:30

新问题:我可以从 画布的资源中读取文本吗

例如这几句,或其中任何一句。

目的:画布上有一行,包含一个日期。这就是我们要读的日期。

或者使用一种久经考验的老方法,GV、文件、图形或其他东西。


 
Alexey Viktorov:

我不排除我的问题措辞不太正确的事实。

如果我创建了一个资源,它就会被保存,或者可以强行保存。然后再读。要准确阅读资源,正如最初的问题中所说的那样。


好吧,就在这里。

 
Andrey Barinov:

好了,你去吧。


安德烈,但我并不是没有注意到这一点。

关于交易、自动交易系统和策略测试的论坛

是否可以将OBJ_TEXT对象中的文本分几行输出?

Alexey Viktorov, 2019.08.06 13:19

我已经找到了,但没有任何效果。我试图将数组转换为字符串,但数组类型不匹配。我不知道如何让它发挥作用。也许我做错了什么,但还没有新的想法。


然后你就没有提供进一步的信息。
 
Alexey Viktorov:

谢谢你的答复。这正是我认为的世纪之谜。如果你不介意更详细地介绍一下。

使用ResourceCreate从uint数据创建资源,但读取资源失败。如果你读了下面的意见,你就会明白为什么我放弃了,但你给了我希望。

好吧,我试着说得更详细些。

1.宣布结合。

2.在union里面,你声明了几个不同类型的数组。

比如说。

//--------------------------------------------------------------------
union SEND{uchar char_Send[32000]; uint uint_Send[8000];};
union READ{uchar char_Read[32000]; uint uint_Read[8000];};
//--------------------------------------------------------------------


3.要写一个字符串,我们需要char_Send数组。

4.要读取一个字符串,我们需要一个数组char_Read。

5.假设我们有一个字符串 "aalksdjghfhaerlkvhelvkjhalekhavk",我们想把它写入一个资源。我们这样做。

int q = StringToCharArray("aalksdjghfhaerlkvkhelvkjhalekhavk",send.Char_Send);

之后,我们的字符串就在Char_Send数组中。

6.为了让字符串出现在资源中,我们必须在ResourceCreate()中保存uint_Send数组。

ResourceCreate("::Имя_ресурса",send.uint_Send,8000,1,0,0,0,COLOR_FORMAT_XRGB_NOALPHA);

7.重要的是要理解,通过在Char_Send中写入字符串,我们已经将其转换为char类型,并且字符串将自动出现在uint类型中。这就是工会的本质。如果你向Char_Send写一个字符串,它就已经在Uint_Send中了。你只需用ResourceCreate()保存它。

8.要从一个资源中提取一个字符串,请使用ResourceReadImage();指定资源的名称,并向其传递一个uint_Read数组。

ResourceReadImage("::Имя_ресурса",read.uint_Read,width,height);

9.之后,uint_Read中呈现的字符串将已经在char_Read数组中(没有覆盖),你可以使用CharArrayToString() 从char_Read中提取。


呼,我想这就是了......)

 
Реter Konow:

好吧,我试着说得更具体些。


呼,我想这就是了......)

谢谢你,彼得,这一切都解决了。只是值得注意的是,如果你在 创建资源 时使用COLOR_FORMAT_XRGB_NOALPHA,说得不好听一点,图片就不一样了。如果我们使用COLOR_FORMAT_ARGB_NORMALIZE,图像很好,但包含多个符号。 我也许应该试验一下代码页。也许会成功...

 
Alexey Viktorov:

谢谢你,彼得,这一切都解决了。只是值得注意的是,如果你在 创建资源 时使用COLOR_FORMAT_XRGB_NOALPHA,说得不好听一点,图片就不一样了。如果我们使用COLOR_FORMAT_ARGB_NORMALIZE,图像很好,但包含多个符号。我也许应该试验一下代码页。也许会成功...

如果该资源是用来存储图像的,有三个颜色处理选项 - COLOR_FORMAT_XRGB_NOALPHA, COLOR_FORMAT_ARGB_NORMALIZE, COLOR_FORMAT_ARGB_ROW。但如果该资源是用来存储数据的,就应该使用COLOR_FORMAT_XRGB_NOALPHA选项,因为色彩处理是不合适的。
 
Реter Konow:
如果该资源是用来存储图像的,有三个颜色处理选项 - COLOR_FORMAT_XRGB_NOALPHA, COLOR_FORMAT_ARGB_NORMALIZE, COLOR_FORMAT_ARGB_RAW。但如果该资源是用来存储数据的,就应该使用COLOR_FORMAT_XRGB_NOALPHA选项,因为色彩处理并不合适。

明白了,谢谢。事实证明,我们必须为图片和数据传输制作两种不同的资源。

 
Alexey Viktorov:

我明白了,谢谢你。事实证明,你必须为图片和数据传输制作两种不同的资源。

当然了。
原因: