Diskussion zum Artikel "Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XX): Erstellen und Speichern von Programmressourcen"

 

Neuer Artikel Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XX): Erstellen und Speichern von Programmressourcen :

Der Artikel beschäftigt sich mit dem Speichern von Daten im Quellcode des Programms und dem Erstellen von Audio- und Grafikdateien daraus. Bei der Entwicklung einer Anwendung benötigen wir oft Audio und Bilder. Die MQL-Sprache verfügt über mehrere Methoden zur Verwendung solcher Daten.

Nach der Kompilierung des EAs zeigt es die Ergebnisse der Dateierstellung im Journal an, spielt den fallenden Münzton ab und zeigt das aus zwei Bildern bestehende LED-Bild in der rechten unteren Ecke des Bildschirms an. Sie können die Bilder wechseln, indem Sie auf die LED klicken. Tatsächlich ist dies eine Schaltfläche mit zwei Zuständen (ein/aus).



Wie wir sehen können, funktioniert alles so, wie es sein soll. Die Meldungen über eine erfolgreiche Dateierzeugung erscheinen im Journal, die LED ändert ihre Farbe, wenn wir auf sie klicken, und wenn wir den Terminalordner öffnen (Datei --> Dateiordner öffnen) und MQL5\Files\DoEasy\Resource\ eingeben, können wir die Unterordner Bilder und Sounds sehen, in denen sich alle neu erstellten Dateien befinden.

Autor: Artyom Trishkin

 

Sie haben 1 Byte mit 5 Zeichen kodiert ("0xNN,").

Base64 wird verwendet, um binäre Daten dicht in Text zu verpacken. In meinem Test habe ich 1,36 Zeichen pro Byte erhalten.

Hier ist ein Beispiel

void 
OnStart() {
        uchar result[], result2[];
        uchar key[] = { 0 };
        uchar data[];
        int len1 = StringToCharArray("The quick brown  fox  jumps  over  the  lazy  dog", data);
        
        int len2 = CryptEncode(CRYPT_BASE64, data, key, result);
        Print("len1=", len1, ", len2=", len2, ", result=", CharArrayToString(result));

        CryptDecode(CRYPT_BASE64, result, key, result2);
        Print("result2=", CharArrayToString(result2));
}

len1=50, len2=68, result=VGhlIHF1aWNrIGJyb3duICBmb3ggIGp1bXBzICBvdmVyICB0aGUgIGxhenkgIGRvZwA=


 
Edgar:

Sie haben 1 Byte mit 5 Zeichen kodiert ("0xNNN,").

Base64 wird verwendet, um binäre Daten dicht in Text zu verpacken. In meinem Test erhielt ich 1,36 Zeichen pro Byte.

Hier ist ein Beispiel

len1=50, len2=68, result=VGhlIHF1aWNrIGJyb3duICBmb3ggIGp1bXBzICBvdmVyICB0aGUgIGxhenkgIGRvZwA=


Darum geht es hier also...
 
Artyom Trishkin:
Das ist nicht das, worüber wir hier reden...

Ah, Sie meinen, dass Sie Daten zum Kompilieren haben und in ex5 1:1 belegen werden. Ja, es ist nicht notwendig, hier zu packen.

 
Edgar:

Ah, Sie meinen, dass Sie Daten für die Kompilierung haben und in ex5 1:1 belegen werden. Ja, es ist nicht nötig, sie hier zu packen.

Später wird der Speicherplatz in den Programmressourcen hinzugefügt - der Compiler komprimiert die Daten dort.