Ist es möglich, in einem OBJ_TEXT-Objekt Text auf mehreren Zeilen auszugeben? - Seite 6

 
Реter Konow:
Sie können Daten aus einer Ressource mit ResourceReadImage lesen, aber dazu müssen Sie sie mit ResourceCreate dorthin schreiben. Die Funktion ResourceCreate akzeptiert nur ein Array mit uint-Daten. Wenn wir also ein Array mit einem anderen Datentyp schreiben wollen, müssen wir union verwenden. Deklarieren Sie darin mehrere Arrays unterschiedlichen Typs. Danach können wir beliebige Daten in der Ressource speichern, einschließlich Zeichenketten. Für die Umwandlung von String in Char-Typ verwenden Sie StringToCharArray und umgekehrt CharArrayToString. Es geht also gar nicht um die Leinwand, sondern um die Ressource, in die man mit Hilfe von Unions jede Art von Daten schreiben kann.

Ich danke Ihnen für Ihre Antwort. Genau das ist für mich das Rätsel des Jahrhunderts. Wenn es Ihnen nichts ausmacht, können Sie mehr darüber erfahren.

Die Ressource wird mit ResourceCreate aus uint-Daten erstellt, aber das Lesen der Ressource führt zu keinem Ergebnis. Und wenn Sie die folgenden Stellungnahmen lesen, werden Sie verstehen, warum ich aufgegeben habe, aber Sie haben mir Hoffnung gegeben.

 
Alexey Viktorov:

Ich danke Ihnen für Ihre Antwort. Genau das ist für mich das Rätsel des Jahrhunderts. Wenn es Ihnen nichts ausmacht, können Sie mehr darüber erfahren.

Die Ressource wird mit ResourceCreate aus uint-Daten erstellt, aber das Lesen der Ressource funktionierte nicht. Und wenn Sie die folgenden Stellungnahmen lesen, werden Sie verstehen, warum ich aufgegeben habe, aber Sie haben mir Hoffnung gegeben.

Das ist nicht das, was Peter sagt :). Er ist auf seiner eigenen Wellenlänge. Er hat ein Schema skizziert, wie Daten zwischen EAs über Ressourcen ausgetauscht werden können.

Das hat nichts mit Ihrer Aufgabe zu tun, die Inschrift auf der Leinwand zu erkennen...

 
Andrey Barinov:

Das ist nicht das, was Peter sagt :). Er ist auf seiner eigenen Wellenlänge. Er skizzierte ein Schema, wie Daten zwischen EAs über Ressourcen ausgetauscht werden können.

Es hat nichts mit Ihrer Aufgabe zu tun, die Inschrift von Kanvas zu erkennen...

Ich schließe nicht aus, dass ich die Frage nicht ganz richtig formuliert habe.

Wenn ich eine Ressource erstelle, wird sie gespeichert oder ich kann ihre Speicherung erzwingen. Und dann lesen Sie es. Lesen Sie genau die Quelle, die in der Ausgangsfrage angegeben ist.

Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests

Ist es möglich, den Text in mehreren Zeilen im OBJ_TEXT-Objekt auszugeben?

Alexey Viktorov, 2019.08.05 09:30

Neue Frage: Kann ich Text aus einer Ressource in einer Leinwand lesen?

Zum Beispiel diese Zeilen, oder irgendeine davon.

Zweck: Der Kanvas hat eine Zeile, die ein Datum enthält. Das ist das Datum, das wir lesen wollen.

Oder verwenden Sie eine der altbewährten Methoden, GV, Datei, Grafik oder etwas anderes.


 
Alexey Viktorov:

Ich schließe nicht aus, dass ich die Frage nicht ganz richtig formuliert habe.

Wenn ich eine Ressource erstelle, wird sie gespeichert oder kann sie zwangsweise gespeichert werden. Und dann lesen Sie es. Um genau die Quelle zu lesen, wie es in der ursprünglichen Frage gesagt wurde.


Nun, hier ist sie:

 
Andrey Barinov:

Nun, da haben Sie es:


Andrei, aber das ist mir nicht verborgen geblieben.

Forum über Handel, automatisierte Handelssysteme und Strategietests

Ist es möglich, den Text im OBJ_TEXT-Objekt in mehreren Zeilen auszugeben?

Alexey Viktorov, 2019.08.06 13:19

Ich habe es gefunden, aber nichts funktioniert. Ich habe versucht, Array in String zu konvertieren, aber die Array-Typen stimmen nicht überein. Ich weiß nicht, wie das funktionieren soll. Vielleicht mache ich etwas falsch, aber ich habe noch keine neuen Ideen.


Und dann haben Sie nichts weiter angeboten.
 
Alexey Viktorov:

Ich danke Ihnen für Ihre Antwort. Genau das ist für mich das Rätsel des Jahrhunderts. Wenn es Ihnen nichts ausmacht, etwas genauer darauf einzugehen.

Die Ressource wurde mit ResourceCreate aus uint-Daten erstellt, aber das Lesen der Ressource ist fehlgeschlagen. Und wenn Sie die folgenden Meinungen lesen, werden Sie verstehen, warum ich aufgegeben habe, aber Sie haben mir Hoffnung gegeben.

OK, ich werde versuchen, mehr ins Detail zu gehen.

1. die Vereinigung zu erklären.

2. Innerhalb der Union deklarieren Sie mehrere Arrays unterschiedlichen Typs.

Zum Beispiel:

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


3. Um eine Zeichenkette zu schreiben, benötigen wir das Array char_Send.

4. Um eine Zeichenkette zu lesen, benötigen wir ein Array char_Read.

5. Angenommen, wir haben eine Zeichenkette "aalksdjghalkfhaerlkvhelvkjhalekhavk" und wollen sie in eine Ressource schreiben. Wir tun dies:

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

Danach befindet sich unsere Zeichenkette im Array Char_Send.

6. Damit die Zeichenfolge in der Ressource enthalten ist, müssen wir das Array uint_Send in ResourceCreate() speichern;

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

7. Es ist wichtig zu verstehen, dass wir durch das Schreiben der Zeichenkette in Char_Send diese in den Typ char konvertiert haben, und die Zeichenkette wird automatisch im Typ uint erscheinen. Dies ist das Wesen der Gewerkschaften. Wenn Sie eine Zeichenkette in Char_Send schreiben, befindet sie sich bereits in Uint_Send. Sie speichern sie einfach mit ResourceCreate();

8. Um eine Zeichenkette aus einer Ressource zu extrahieren, verwenden Sie ResourceReadImage(); Geben Sie den Namen der Ressource an und übergeben Sie ein uint_Read-Array an diese.

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

9. Danach befindet sich die in uint_Read präsentierte Zeichenkette bereits im Array char_Read (ohne sie zu überschreiben), und Sie können sie mit CharArrayToString() aus char_Read extrahieren.


Puh, ich glaube, das war's...)

 
Реter Konow:

OK, ich werde versuchen, genauer zu sein.


Puh, ich glaube, das war's...)

Danke Peter, es hat alles geklappt. Es ist nur erwähnenswert, dass, wenn Sie COLOR_FORMAT_XRGB_NOALPHA bei der Erstellung einer Ressource verwenden, das Bild nicht dasselbe ist, um es gelinde auszudrücken. Wenn wir COLOR_FORMAT_ARGB_NORMALIZE verwenden, ist das Bild zwar schön, enthält aber mehrere Symbole. Ich sollte wahrscheinlich mit der Codepage experimentieren. Vielleicht klappt es ja...

 
Alexey Viktorov:

Danke Peter, es hat alles geklappt. Es ist nur erwähnenswert, dass, wenn Sie COLOR_FORMAT_XRGB_NOALPHA bei der Erstellung einer Ressource verwenden, das Bild nicht dasselbe ist, um es gelinde auszudrücken. Wenn wir COLOR_FORMAT_ARGB_NORMALIZE verwenden, ist das Bild zwar schön, enthält aber mehrere Symbole. Ich sollte wahrscheinlich mit der Codepage experimentieren. Vielleicht klappt es ja...

Wenn die Ressource ein Bild speichern soll, gibt es drei Optionen für die Farbverarbeitung - COLOR_FORMAT_XRGB_NOALPHA, COLOR_FORMAT_ARGB_NORMALIZE, COLOR_FORMAT_ARGB_ROW. Wenn die Ressource jedoch Daten speichern soll, sollte die Option COLOR_FORMAT_XRGB_NOALPHA verwendet werden, da die Farbverarbeitung ungeeignet ist.
 
Реter Konow:
Wenn die Ressource ein Bild speichern soll, gibt es drei Optionen für die Farbverarbeitung - COLOR_FORMAT_XRGB_NOALPHA, COLOR_FORMAT_ARGB_NORMALIZE, COLOR_FORMAT_ARGB_RAW. Wenn die Ressource jedoch Daten speichern soll, sollte die Option COLOR_FORMAT_XRGB_NOALPHA verwendet werden, da die Farbverarbeitung nicht geeignet ist.

Verstanden, danke. Es stellt sich heraus, dass wir zwei verschiedene Ressourcen für die Bild- und Datenübertragung benötigen.

 
Alexey Viktorov:

Ich verstehe, danke. Es stellt sich heraus, dass Sie zwei verschiedene Ressourcen für das Bild und die Datenübertragung erstellen müssen.

Ja, natürlich.
Grund der Beschwerde: