Est-il possible d'éditer du texte sur plusieurs lignes dans un objet OBJ_TEXT ? - page 6

 
Реter Konow:
Vous pouvez lire les données d'une ressource à l'aide de ResourceReadImage, mais pour ce faire, vous devez les y écrire à l'aide de ResourceCreate. La fonction ResourceCreate accepte uniquement un tableau de données uint, donc si nous devons écrire un tableau d'un autre type de données, nous devons utiliser union. Déclarez-y plusieurs tableaux de différents types. Après cela, nous pouvons stocker n'importe quelle donnée dans la ressource, y compris des chaînes de caractères. Pour convertir la chaîne de caractères en type de caractère , utilisez StringToCharArray et vice versa, utilisez CharArrayToString. Il ne s'agit donc pas du tout du kanvas, mais de la ressource dans laquelle vous pouvez écrire tout type de données à l'aide d'unions.

Merci d'avoir répondu. C'est exactement le mystère du siècle pour moi. Si ça ne vous dérange pas, plus de détails à ce sujet.

La ressource est créée à l'aide de ResourceCreate à partir de données uint, mais la lecture de la ressource ne donne aucun résultat. Et si vous lisez les avis suivants, vous comprendrez pourquoi j'ai abandonné, mais vous m'avez donné de l'espoir.

 
Alexey Viktorov:

Merci d'avoir répondu. C'est exactement le mystère du siècle pour moi. Si ça ne vous dérange pas, plus de détails à ce sujet.

La ressource est créée à l'aide de ResourceCreate à partir de données uint, mais la lecture de la ressource ne fonctionne pas. Et si vous lisez les avis suivants, vous comprendrez pourquoi j'ai abandonné, mais vous m'avez redonné espoir.

Ce n'est pas ce que dit Peter :). Il est sur sa propre longueur d'onde. Il a esquissé un schéma sur la manière dont les données peuvent être échangées entre les EE via les ressources.

Cela n'a rien à voir avec votre tâche de reconnaître l'inscription de la toile...

 
Andrey Barinov:

Ce n'est pas ce que dit Peter :). Il est sur sa propre longueur d'onde. Il a présenté un schéma de la manière dont les données peuvent être échangées entre les EE via les ressources.

Cela n'a rien à voir avec votre tâche de reconnaître l'inscription de Kanvas...

Je n'exclus pas le fait que je n'ai pas formulé la question correctement.

Si je crée une ressource, elle est enregistrée ou je peux la forcer à l'enregistrer. Et ensuite le lire. Lisez exactement la ressource, comme indiqué dans la question initiale.

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Est-il possible d'éditer le texte en plusieurs lignes dans l'objet OBJ_TEXT ?

Alexey Viktorov, 2019.08.05 09:30

Nouvelle question : Puis-je lire le texte d'une ressource dans un canevas ?

Par exemple ces lignes, ou n'importe laquelle d'entre elles.

Objectif : Le kanvas comporte une ligne, qui contient une date. C'est la date que nous voulons lire.

Ou utilisez l'une des vieilles méthodes éprouvées, GV, fichier, graphique ou autre.


 
Alexey Viktorov:

Je n'exclus pas le fait que je n'ai pas formulé la question correctement.

Si je crée une ressource, elle est sauvegardée ou elle peut être sauvegardée de force. Et ensuite le lire. Pour lire exactement la ressource, comme il a été dit dans la question initiale.


Eh bien, voilà :

 
Andrey Barinov:

Eh bien, voilà :


Andrei, mais cela n'est pas passé inaperçu pour moi.

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Est-il possible d'éditer le texte de l'objet OBJ_TEXT en plusieurs lignes ?

Alexey Viktorov, 2019.08.06 13:19

Je l'ai trouvé, mais rien ne fonctionne. J'ai essayé de convertir un tableau en chaîne, mais les types de tableaux ne correspondent pas. Je ne sais pas comment faire pour que ça marche. Je fais peut-être quelque chose de mal, mais je n'ai pas encore de nouvelles idées.


Et puis vous n'avez rien proposé de plus.
 
Alexey Viktorov:

Merci d'avoir répondu. C'est exactement le mystère du siècle pour moi. Si ça ne vous dérange pas de donner plus de détails à ce sujet.

La ressource est créée à l'aide de ResourceCreate à partir de données uint, mais la lecture de la ressource a échoué. Et si vous lisez les avis suivants, vous comprendrez pourquoi j'ai abandonné, mais vous m'avez donné de l'espoir.

OK, je vais essayer d'entrer dans les détails.

1. déclarer l'union.

2. À l'intérieur de l'union, vous déclarez plusieurs tableaux de différents types.

Par exemple :

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


3. Pour écrire une chaîne de caractères, nous avons besoin du tableau char_Send.

4. Pour lire une chaîne de caractères, nous avons besoin d'un tableau char_Read.

5. Supposons que nous avons une chaîne de caractères "aalksdjghalkfhaerlkvhelvkjhalekhavk" et que nous voulons l'écrire dans une ressource. Nous le faisons :

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

Après cela, notre chaîne est dans le tableau Char_Send.

6. Pour que la chaîne soit dans la ressource, nous devons enregistrer le tableau uint_Send dans ResourceCreate() ;

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

7. Il est important de comprendre qu'en écrivant la chaîne dans Char_Send, nous l'avons convertie en type char, et la chaîne apparaîtra automatiquement dans le type uint. C'est l'essence même des syndicats. Si vous écrivez une chaîne dans Char_Send, elle sera déjà dans Uint_Send. Il suffit de l'enregistrer avec ResourceCreate() ;

8. Pour extraire une chaîne de caractères d'une ressource, utilisez ResourceReadImage() ; spécifiez le nom de la ressource et passez-lui un tableau uint_Read.

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

9. Après cela, la chaîne présentée dans uint_Read sera déjà dans le tableau char_Read (sans l'écraser), et vous pourrez l'extraire de char_Read en utilisant CharArrayToString().


Ouf, je crois que c'est tout...)

 
Реter Konow:

OK, je vais essayer d'être plus précis.


Ouf, je crois que c'est tout...)

Merci Peter, tout s'est arrangé. Il convient simplement de noter que si vous utilisez COLOR_FORMAT_XRGB_NOALPHA lors de la création d'une ressource, l'image n'est pas la même, pour ne pas dire plus. Si nous utilisons COLOR_FORMAT_ARGB_NORMALIZE, l'image est belle, mais contient plusieurs symboles. Je devrais probablement expérimenter avec le codepage. Peut-être que ça va marcher...

 
Alexey Viktorov:

Merci Peter, tout s'est arrangé. Il convient simplement de noter que si vous utilisez COLOR_FORMAT_XRGB_NOALPHA lors de la création d'une ressource, l'image n'est pas la même, pour ne pas dire plus. Si nous utilisons COLOR_FORMAT_ARGB_NORMALIZE, l'image est belle, mais contient plusieurs symboles. Je devrais probablement expérimenter avec le codepage. Peut-être que ça va marcher...

Si la ressource est censée stocker une image, il existe trois options pour le traitement des couleurs - COLOR_FORMAT_XRGB_NOALPHA, COLOR_FORMAT_ARGB_NORMALIZE, COLOR_FORMAT_ARGB_ROW. Mais si la ressource est destinée à stocker des données, l'option COLOR_FORMAT_XRGB_NOALPHA doit être utilisée, car le traitement des couleurs est inapproprié.
 
Реter Konow:
Si la ressource est censée stocker une image, il existe trois options pour le traitement des couleurs - COLOR_FORMAT_XRGB_NOALPHA, COLOR_FORMAT_ARGB_NORMALIZE, COLOR_FORMAT_ARGB_RAW. Mais si la ressource est destinée à stocker des données, l'option COLOR_FORMAT_XRGB_NOALPHA doit être utilisée, car le traitement des couleurs n'est pas approprié.

Je l'ai, merci. Il s'avère que nous devons créer deux ressources différentes pour le transfert des images et des données.

 
Alexey Viktorov:

Je vois, merci. Il s'avère que vous devez créer deux ressources différentes pour l'image et le transfert de données.

Bien sûr.