From 1bd8adacaa89a724e4f0f4d96571511ce2d64216 Mon Sep 17 00:00:00 2001 From: Adrian Kierzkowski Date: Mon, 4 Nov 2024 15:50:03 +0100 Subject: [PATCH] Fixed binary file writing. --- File.mqh | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/File.mqh b/File.mqh index 4fe3dcb6b..3157910ea 100644 --- a/File.mqh +++ b/File.mqh @@ -140,7 +140,7 @@ class File { static bool SaveFile(string path, string data, bool binary = false) { ResetLastError(); - int handle = FileOpen(path, FILE_WRITE | (binary ? FILE_BIN : FILE_ANSI)); + int handle = FileOpen(path, FILE_WRITE | (binary ? FILE_BIN : FILE_TXT), "", CP_UTF8); if (handle == INVALID_HANDLE) { string terminalDataPath = TerminalInfoString(TERMINAL_DATA_PATH); @@ -154,8 +154,15 @@ class File { "\\Files\\\" as absolute paths may not work."); return false; } - - FileWriteString(handle, data); + + if (binary) { + uchar buffer[]; + StringToCharArray(data, buffer, 0, WHOLE_ARRAY, CP_UTF8); + FileWriteArray(handle, buffer, 0, ArraySize(buffer)); + } + else { + FileWriteString(handle, data); + } FileClose(handle);