È possibile emettere testo su più righe in un oggetto OBJ_TEXT? - pagina 6

 
Реter Konow:
Potete leggere dati da una risorsa usando ResourceReadImage, ma per farlo dovete scriverci usando ResourceCreate. La funzione ResourceCreate accetta solo un array di dati uint, quindi se abbiamo bisogno di scrivere un array di un altro tipo di dati, dobbiamo usare union. Dichiarare diversi array di diversi tipi in esso. Dopo di che, possiamo memorizzare qualsiasi dato nella risorsa, incluse le stringhe. Per convertire la stringa nel tipo char usate StringToCharArray e viceversa usate CharArrayToString. Quindi, non si tratta affatto del kanvas, ma della risorsa in cui si può scrivere qualsiasi tipo di dati con l'aiuto delle unioni.

Grazie per aver risposto. Questo è esattamente il mistero del secolo per me. Se non vi dispiace, maggiori dettagli in merito.

La risorsa viene creata usando ResourceCreate da dati uint, ma la lettura della risorsa non ha risultati. E se leggete le seguenti opinioni, capirete perché ho rinunciato, ma mi avete dato speranza.

 
Alexey Viktorov:

Grazie per aver risposto. Questo è esattamente il mistero del secolo per me. Se non vi dispiace, maggiori dettagli in merito.

La risorsa viene creata usando ResourceCreate da dati uint, ma la lettura della risorsa non ha funzionato. E se leggete le seguenti opinioni, capirete perché ho rinunciato, ma mi avete dato speranza.

Non è quello che dice Peter :). È sulla sua stessa lunghezza d'onda. Ha delineato uno schema di come i dati possono essere scambiati tra gli EA attraverso le risorse.

Non ha niente a che vedere con il vostro compito di riconoscere l'iscrizione Canvas...

 
Andrey Barinov:

Non è quello che dice Peter :). È sulla sua stessa lunghezza d'onda. Ha delineato uno schema di come i dati possono essere scambiati tra gli EA attraverso le risorse.

Non ha niente a che vedere con il tuo compito di riconoscere l'iscrizione di Kanvas...

Non escludo di non aver formulato correttamente la domanda.

Se creo una risorsa, viene salvata o posso forzare il salvataggio. E poi leggerlo. Leggi esattamente la risorsa, come indicato nella domanda iniziale.

Forum sul trading, sistemi di trading automatico e test di strategia

È possibile emettere il testo in più righe nell'oggetto OBJ_TEXT?

Alexey Viktorov, 2019.08.05 09:30

Nuova domanda: posso leggere il testo di una risorsa in una tela?

Per esempio queste righe, o qualcuna di esse.

Scopo: il kanvas ha una linea che contiene una data. Questa è la data che vogliamo leggere.

O usare uno dei vecchi metodi provati e testati, GV, file, grafica o qualcos'altro.


 
Alexey Viktorov:

Non escludo di non aver formulato bene la domanda.

Se creo una risorsa, questa viene salvata o può essere salvata forzatamente. E poi leggerlo. Per leggere esattamente la risorsa, come è stato detto nella domanda iniziale.


Bene, eccolo qui:

 
Andrey Barinov:

Bene, ecco fatto:


Andrei, ma non è passato inosservato da me

Forum sul trading, sistemi di trading automatico e test di strategia

È possibile emettere il testo nell'oggetto OBJ_TEXT in più righe?

Alexey Viktorov, 2019.08.06 13:19

L'ho trovato, ma non funziona niente. Ho provato a convertire l'array in stringa, ma i tipi di array non corrispondono. Non so come farlo funzionare. Forse sto facendo qualcosa di sbagliato, ma ancora nessuna nuova idea.


E poi non ha offerto altro.
 
Alexey Viktorov:

Grazie per aver risposto. Questo è esattamente il mistero del secolo per me. Se non le dispiace entrare più nel dettaglio.

La risorsa è stata creata usando ResourceCreate da dati uint, ma la lettura della risorsa è fallita. E se leggete le seguenti opinioni, capirete perché ho rinunciato, ma mi avete dato speranza.

Ok, cercherò di entrare più nel dettaglio.

1. Dichiarare l'unione.

2. All'interno dell'unione, dichiarate diversi array di tipi diversi.

Per esempio:

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


3. Per scrivere una stringa abbiamo bisogno dell'array char_Send.

4. Per leggere una stringa, abbiamo bisogno di un array char_Read.

5. Supponiamo di avere una stringa "aalksdjghalkfhaerlkvhelvkjhalekhavk" e di volerla scrivere in una risorsa. Noi facciamo questo:

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

Dopo di che, la nostra stringa è nell'array Char_Send.

6. Perché la stringa sia nella risorsa, dobbiamo salvare l'array uint_Send in ResourceCreate();

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

7. È importante capire che scrivendo la stringa in Char_Send, l'abbiamo convertita nel tipo char, e la stringa apparirà automaticamente nel tipo uint. Questa è l'essenza dei sindacati. Se scrivete una stringa in Char_Send, essa sarà già in Uint_Send. Basta salvarlo con ResourceCreate();

8. Per estrarre una stringa da una risorsa, usate ResourceReadImage(); specificate il nome della risorsa e passateci un array uint_Read.

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

9. Dopo di che, la stringa presentata in uint_Read sarà già nell'array char_Read (senza sovrascriverla), e potrete estrarla da char_Read usando CharArrayToString().


Uff, penso che sia tutto...).

 
Реter Konow:

Ok, cercherò di essere più specifico.


Uff, penso che sia tutto...).

Grazie Peter, è andato tutto bene. Vale solo la pena notare che se si usa COLOR_FORMAT_XRGB_NOALPHA quando si crea una risorsa, l'immagine non è la stessa, per usare un eufemismo. Se usiamo COLOR_FORMAT_ARGB_NORMALIZE, l'immagine è bella, ma contiene più simboli. Probabilmente dovrei sperimentare la codifica. Forse funzionerà...

 
Alexey Viktorov:

Grazie Peter, è andato tutto bene. Vale solo la pena notare che se si usa COLOR_FORMAT_XRGB_NOALPHA quando si crea una risorsa, l'immagine non è la stessa, per usare un eufemismo. Se usiamo COLOR_FORMAT_ARGB_NORMALIZE, l'immagine è bella, ma contiene più simboli. Probabilmente dovrei sperimentare la codifica. Forse funzionerà...

Se la risorsa deve memorizzare un'immagine, ci sono tre opzioni per l'elaborazione del colore - COLOR_FORMAT_XRGB_NOALPHA, COLOR_FORMAT_ARGB_NORMALIZE, COLOR_FORMAT_ARGB_ROW. Ma se la risorsa è per immagazzinare dati, l'opzione COLOR_FORMAT_XRGB_NOALPHA dovrebbe essere usata, perché l'elaborazione del colore è inappropriata.
 
Реter Konow:
Se la risorsa deve memorizzare un'immagine, ci sono tre opzioni per l'elaborazione del colore - COLOR_FORMAT_XRGB_NOALPHA, COLOR_FORMAT_ARGB_NORMALIZE, COLOR_FORMAT_ARGB_RAW. Ma se la risorsa è per memorizzare dati, l'opzione COLOR_FORMAT_XRGB_NOALPHA dovrebbe essere usata, perché l'elaborazione del colore non è appropriata.

Capito, grazie. Si scopre che dobbiamo fare due risorse diverse per il trasferimento di immagini e dati.

 
Alexey Viktorov:

Capisco, grazie. Si scopre che bisogna fare due risorse diverse per l'immagine e il trasferimento dei dati.

Naturalmente.
Motivazione: