Как получить собственное имя и путь файла ex5 ? - страница 3 123 Новый комментарий Alex FXPIP 2025.02.05 08:40 #21 как получить размер файла ex5 ? string FullPath = MQLInfoString(MQL_PROGRAM_PATH); // Получаем полный путь к файлу ex5 Print("FullPath = ", FullPath); // Открываем файл для чтения int file_handle = FileOpen(FullPath, FILE_READ | FILE_BIN); if (file_handle != INVALID_HANDLE) { // Получаем размер файла ulong file_size = FileSize(file_handle); Print("Размер файла: ", file_size, " байт"); // Закрываем файл FileClose(file_handle); } else { Print("Ошибка при открытии файла."); } пробую так но в итоге ex5 не может быть прочитан что бы выполнить FileSize(file_handle); где handle является FileOpen ---- Ошибка при открытии файла. Есть альтернативы получить как то размер файла именно из пути MQL_PROGRAM_PATH? для Индикаторов и роботов ex5 не из папки MQL/FILES Как прочитать файл? Новая версия платформы MetaTrader Индикаторы: Elliott Wave Oscillator fxsaber 2025.02.05 13:57 #22 Alex Renko #: как получить размер файла ex5 ? #include <WinAPI\WinAPI.mqh> #define GENERIC_READ 0x80000000 #define SHARE_READ 1 #define OPEN_EXISTING 3 int GetFileSize( const string FileName ) { const HANDLE handle = kernel32::CreateFileW(FileName, GENERIC_READ, SHARE_READ, 0, OPEN_EXISTING, 0, 0); int Res = (handle != INVALID_HANDLE) ? 0 : -1; if (!Res) { Res = (int)kernel32::GetFileSize(handle, Res); kernel32::CloseHandle(handle); } return(Res); } int GetMySize() { return(GetFileSize(MQLInfoString(MQL_PROGRAM_PATH))); } void OnStart() { Print(GetMySize()); } Alex FXPIP 2025.02.05 14:25 #23 fxsaber #: Пасиб!! Я понял что придется через кернел кодить... не хотел лишние лдд юзать думал как то посредством mql можно ulong GetFileSizeExW(string filePath) //#import "Kernel32.dll" // int CreateFileW(ushort &fileName[], uint desiredAccess, uint shareMode, int securityAttributes, uint creationDisposition, uint flagsAndAttributes, int templateFile); // int GetFileSizeEx(int hFile, long &lpFileSize); // int CloseHandle(int hObject); //#import { ushort wFilePath[]; StringToShortArray(filePath, wFilePath); // Открываем файл через Windows API (только для чтения, без блокировки) int hFile = CreateFileW(wFilePath, 0x80000000, 0x00000001, 0, 3, 0x80, 0); if (hFile == -1) // INVALID_HANDLE_VALUE { Print("Ошибка открытия файла: ", filePath); return 0; } // Получаем размер файла long fileSize = 0; if (!GetFileSizeEx(hFile, fileSize)) { Print("Ошибка получения размера файла."); CloseHandle(hFile); return 0; } // Закрываем дескриптор файла CloseHandle(hFile); return (ulong)fileSize; } //------------------------------------------------------------------------------------- Maxim Kuznetsov 2025.02.05 20:09 #24 Alex Renko #: Пасиб!! Я понял что придется через кернел кодить... не хотел лишние лдд юзать думал как то посредством mql можно можно заранее сделать символьныую ссылку и читать/считать методами MQL 123 Новый комментарий
как получить размер файла ex5 ?
пробую так но в итоге ex5 не может быть прочитан что бы выполнить FileSize(file_handle); где handle является FileOpen
---- Ошибка при открытии файла.
Есть альтернативы получить как то размер файла именно из пути MQL_PROGRAM_PATH? для Индикаторов и роботов ex5 не из папки MQL/FILES
как получить размер файла ex5 ?
Пасиб!! Я понял что придется через кернел кодить... не хотел лишние лдд юзать думал как то посредством mql можно
Пасиб!! Я понял что придется через кернел кодить... не хотел лишние лдд юзать думал как то посредством mql можно
можно заранее сделать символьныую ссылку и читать/считать методами MQL