Rejoignez notre page de fans
- Vues:
- 5510
- Note:
- Publié:
- 2015.01.28 15:43
- Mise à jour:
- 2016.11.22 07:32
-
Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance
Library for working with files using WinAPI without location limitations.
At present time the read-only mode is implemented. The library will be updated.
- FileUnlimited.mqh, FileUnlimitedConstants.mqh, and StringUtils.mqh must be copied to the terminal_data_folder\MQL5\Include\TheXpert;
- ConstFileUnlimited.mqh library must be copied to the terminal_data_folder\MQL5\Libraries\TheXpert;
- FileUnlimitedTest.mq5 script must be copied to the terminal_data_folder\MQL5\Scripts.
I tried to make class usage as simple as possible.
Example of application (the script):
#include <TheXpert/FileUnlimited.mqh> #include <TheXpert/StringUtils.mqh> #define CP_UTF16 1200 void OnStart() { string name = "TheXpert\\Test.txt"; string path = TerminalInfoString(TERMINAL_DATA_PATH) + "\\MQL5\\Files\\" + name; int hFile = FileOpen(name, FILE_WRITE | FILE_TXT, ' ', CP_UTF16); if (hFile == INVALID_HANDLE) { Print("File not opened."); return; } bool writeBool = false, readBool = true; long writeLong = -4369549, readLong = 0; double writeDouble = -4369549.245, readDouble = 0; datetime writeDatetime = 2596824987, readDatetime = 0; color writeColor = Blue, readColor = White; string writeString = "2r4i6bf4wb9tb69vw", readString = ""; FileWrite(hFile, writeBool); FileWrite(hFile, writeLong); FileWrite(hFile, writeDouble); FileWrite(hFile, writeDatetime); FileWrite(hFile, writeColor); FileWrite(hFile, writeString); FileClose(hFile); // --------------------------------------------- // from here the library for reading is used. // --------------------------------------------- ConstFile* file = OpenConstFile(path); if (CheckPointer(file) != POINTER_INVALID) { file.Read(readBool); Print("readBool = ", readBool); file.Read(readLong); Print("readLong = ", readLong); file.Read(readDouble); Print("readDouble = ", readDouble); file.Read(readDatetime); Print("readDatetime = ", readDatetime); file.Read(readColor); Print("readColor = ", readColor); file.Read(readString); Print("readString = ", readString); delete file; } else { Print("Failed to open ConstFile at path -- ", path); } }
The library operates with Unicode files only, that's why we have CP_UTF16 code page (for some reason it is not available in language constants).
Please notify about all detected errors in comments or this thread.
Comments, suggestions, and constructive criticism are welcome.
Let's make something useful for everyone!
Traduit du russe par MetaQuotes Ltd.
Code original : https://www.mql5.com/ru/code/386
![Mutex - WinAPI](https://c.mql5.com/i/code/library.png)
Synchronize ОС/EA/MT processes etc. Any self-made DLLs are not needed now.
![Margin Calculation](https://c.mql5.com/i/code/library.png)
Library for calculation of a margin required for opening a position in MetaТrader 5.
![dt_FFT](https://c.mql5.com/i/code/library.png)
Library of fast Fourier transformation functions (FFT).
![CHashArrayStringString](https://c.mql5.com/i/code/library.png)
Example of implementation of lines hash array with a string key.