Check_FileFunctions_dll

Author: Copyright � Zhunko
Miscellaneous
It issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites
Check_FileFunctions_dll
//+------------------------------------------------------------------+
//|                                      Check_FileFunctions.dll.mq4 |
//|                                      Copyright © Zhunko          |
//| 12.02.2014 - 28.02.2014              vadim@zhunko.ru             |
//+------------------------------------------------------------------+
//| Áèáëèîòåêà ðàáîòàåò òîëüêî íà âåðñèÿõ ÎÑ îò Windows Vista è âûøå.|
//+------------------------------------------------------------------+
#property copyright   "Copyright © Zhunko"
#property link        "vadim@zhunko.ru"
#property description "Òåñòîâûé ñêðèïò ñ ïðèìåðàìè èñïîëüçîâàíèÿ ôóíêöèé áèáëèîòåêè \"FileFunctions.dll\"."
#property strict
#property show_inputs

#include <FileFunctions.mqh> // Çàãîëîâî÷íûé ôàéë áèáëèîòåêè "FileFunctions.dll" ôóíêöèé äëÿ ðàáîòû ñ êàòàëîãàìè.
//ÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆ
input bool   AllTest              = false; // Âêëþ÷åíèå âñåõ òåñòîâ ïîäðÿä.
input string _1_____Common_Operations______1_ = "_1_______Common_Operations________1_"; // 1. Ôóíêöèè îáùèõ îïåðàöèé ñ ôàéëàìè ïî ïîëíîìó ïóòè ê ôàéëó.
input string FilePathSource       = "";    // Ïóòü ê èñõîäíîìó ôàéëó äëÿ ïåðåìåùåíèÿ è êîïèðîâàíèÿ.
input string FilePathDest         = "";    // Öåëåâîé ïóòü äëÿ ïåðåìåùåíèÿ è êîïèðîâàíèÿ.
input bool   Check                = false; // 1.1.  Ôóíêöèÿ êîíòðîëëèðóåò íàëè÷èå ôàéëà: FileCheckW().
input bool   Copy                 = false; // 1.2.  Ôóíêöèÿ êîïèðóåò ñóùåñòâóþùèé ôàéë: FileCopyW().
input bool   Delete               = false; // 1.3.  Ôóíêöèÿ óäàëÿåò ôàéë: FileDeleteW().
input bool   HardLink             = false; // 1.4.  Ôóíêöèÿ ñîçäà¸ò æ¸ñòêóþ ññûëêó äëÿ óêàçàííîãî ôàéëà: FileHardLinkW().
input bool   Move                 = false; // 1.5.  Ôóíêöèÿ ïåðåìåùàåò (ïåðåèìåíîâûâàåò) ñóùåñòâóþùèé ôàéë: FileMoveW().
input bool   SymbolicLink         = false; // 1.6.  Ôóíêöèÿ ñîçäà¸ò ñèìâîëüíóþ ññûëêó äëÿ óêàçàííîãî ôàéëà: FileSymbolicLinkW().
input string _2______OperationsByHandle______2_ = "_2_______OperationsByHandle________2_"; // 2. Ôóíêöèè îáùèõ îïåðàöèé ñ ôàéëàìè ïî ñèñòåìíîìó äåñêðèïòîðó ôàéëà.
input bool   Clear                = false; // 2.1.  Ôóíêöèÿ î÷èùàåò ôàéë îò ñîäåðæèìîãî.
input bool   CloseHandle          = false; // 2.2.  Ôóíêöèÿ çàêðûâàåò ñèñòåìíûé äåñêðèïòîð ôàéëà.
input bool   CopyByHandle         = false; // 2.3.  Ôóíêöèÿ êîïèðóåò ôàéë.
input bool   DeleteByHandle       = false; // 2.4.  Ôóíêöèÿ óäàëÿåò ôàéë.
input bool   FlushApply           = false; // 2.5.  Ôóíêöèÿ î÷èùàåò áóôåð è çàïèñûâàåò íà äèñê âñå áóôåðèçèðîâàííûå äàííûå.
input bool   GetSize              = false; // 2.6.  Ôóíêöèÿ âîçâðàùàåò ðàçìåð ôàéëà.
input bool   HardLinkByHandle     = false; // 2.7.  Ôóíêöèÿ ñîçäà¸ò æ¸ñòêóþ ññûëêó äëÿ óêàçàííîãî ôàéëà.
input bool   MoveByHandle         = false; // 2.8.  Ôóíêöèÿ ïåðåìåùàåò (ïåðåèìåíîâûâàåò) ôàéë.
input bool   Resize               = false; // 2.9.  Ôóíêöèÿ ôèêñèðóåò ðàçìåð ôàéëà.
input bool   SymbolicLinkByHandle = false; // 2.10. Ôóíêöèÿ ñîçäà¸ò ñèìâîëüíóþ ññûëêó äëÿ óêàçàííîãî ôàéëà.
input string _3________WRITE_READ________3_ = "_3_________WRITE_READ__________3_"; // 3. Ôóíêöèè çàïèñè/÷òåíèÿ.
input bool   POINTER              = false; // 4. Ôóíêöèè äëÿ ðàáîòû ñ ôàéëîâûì óêàçàòåëåì.
input bool   WRITE                = false; // 5-6. Ôóíêöèè çàïèñè.
input bool   READ                 = false; // 7-8. Ôóíêöèè ÷òåíèÿ.
//ÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆ
void OnStart()
 {
  bool   bResult = false; // Ðåçóëüòàò âûïîëíåíèÿ ôóíêöèé.
  int    i = 0;
  int    hFile = 0;
  int    nSize = 0;       // Ðàçìåð ìàññèâà.
  string sComment = "";
  string sDate = TimeToString(TimeLocal(), TIME_DATE);                         // Äàòà â âèäå ñòðîêè äëÿ èìåíè LOG-ôàéëà.
  StringReplace(sDate, ".", "");                                               // Óáèðàåì òî÷êè èç äàòû.
  string sFilePathSource = TerminalPath() + "\\MQL4\\Logs\\" + sDate + ".log"; // Ïóòü ê èñõîäíîìó ôàéëó äëÿ ïåðåìåùåíèÿ è êîïèðîâàíèÿ.
  string sPathDest1 = TerminalPath() + "\\Test1\\";                            // Öåëåâîé ïóòü 1 ê êàòàëîãó äëÿ ïåðåìåùåíèÿ è êîïèðîâàíèÿ.
  string sPathDest2 = TerminalPath() + "\\Test2\\";                            // Öåëåâîé ïóòü 2 ê êàòàëîãó äëÿ ïåðåìåùåíèÿ è êîïèðîâàíèÿ.
  string sFilePathDest1 = sPathDest1 + "Text1.txt";                            // Öåëåâîé ïóòü 1 ê ôàéëó äëÿ ïåðåìåùåíèÿ è êîïèðîâàíèÿ.
  string sFilePathDest2 = sPathDest2 + "Text2.txt";                            // Öåëåâîé ïóòü 2 ê ôàéëó äëÿ ïåðåìåùåíèÿ è êîïèðîâàíèÿ.
  // Äëÿ çàïèñè.
  uchar  szWriteAnsi[] = {0};
  string sWriteUnicode = "Ïðèâåò ìèð!";
  bool   abWrite[10] = {true, false, true, false, true, true, true, false, false, false};
  char   acWrite[10] = {-128, -93, -70, -25, 0, 25, 56, 86, 96, 127};
  uchar  aucWrite[10] = {255, 230, 210, 199, 175, 150, 123, 75, 54, 0};
  short  ashWrite[10] = {-32768, -22210, -16789, -8765, 0, 4567, 8907, 16789, 22456, 32767};
  ushort aushWrite[10] = {65535, 45456, 35789, 18907, 12567, 50764, 4765, 3789, 1210, 0};
  int    aiWrite[10] = {-2147483648, -1147432001, -16789, -8765, 0, 4567, 8907, 16789, 1147432001, 2147483647};
  uint   auiWrite[10] = {4294967295, 2147483647, 1147432001, 2600535, 130535, 65535, 16789, 8907, 4567, 0};
  long   alWrite[10] = {-9223372036854775808, -4294967295, -16789, -8765, 0, 4567, 8907, 16789, 4294967295, 9223372036854775807};
  ulong  aulWrite[10] = {18446744073709551615, 9223372036854775807, 8294967295, 4294967295, 2147483647, 1147432001, 16789, 8907, 4567, 0};
  float  afWrite[10] = {-21474.32f, -11474.32f, -16.7891f, -876.5123f, 0, 45671.23f, 890712.34f, 167891.23f, 1147432.001f, 214743.2001f};
  double adWrite[10] = {-21474.3200112345, -11474.3200112345, -16.78912345, -876.512345, 0, 45671.2345612345, 890712.345678912, 167891.234567891, 1147432.00112345, 214743.200112345};
  string asWrite[10] = {"Hello world!", "Çàïèñü", "òåñòîâîãî", "òåêñòà", "â", "ôàéë", "Test1.txt", "Êàæäàÿ ñòðîêà", "ñ íîâîé", "ñòðîêè."};
  // Äëÿ ÷òåíèÿ.
  uchar  szReadAnsi[12] = {0}; // Â ýòîò ìàññèâ áóäåì ïðèíèìàòü ANSI-ñòðîêó.
  string sReadUnicode;
  bool   abRead[10] = {0};
  char   acRead[10] = {0};
  uchar  aucRead[10] = {0};
  short  ashRead[10] = {0};
  ushort aushRead[10] = {0};
  int    aiRead[10] = {0};
  uint   auiRead[10] = {0};
  long   alRead[10] = {0};
  ulong  aulRead[10] = {0};
  float  afRead[10] = {0};
  double adRead[10] = {0};
  string asRead[10];
  //æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
  // Ôîðìèðóåì ïóòè ê òåñòîâûì ôàéëàì.
  if (FilePathSource != "") sFilePathSource = FilePathSource;
  if (FilePathDest != "") sFilePathDest1 = FilePathDest;
  StringToCharArray(sWriteUnicode, szWriteAnsi); // Èíèöèàëèçèðóåì ANSI-ñòðîêó.
//  for (i = 0; i < ArraySize(asWrite); i++) asWrite[i] = StringConcatenate(i + 1, " x ", i + 1, " = ", (i + 1) * (i + 1));
  for (i = 0; i < ArraySize(asRead); i++) asRead[i] = string(i) + "               "; // Èíèöèàëèçèðóåì ìàññèâ ñòðîê.
  //æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
  // 1. ÔÓÍÊÖÈÈ ÎÁÙÈÕ ÎÏÅÐÀÖÈÉ Ñ ÔÀÉËÀÌÈ.
  //æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
  // 1.1. Ôóíêöèÿ êîíòðîëëèðóåò íàëè÷èå ôàéëà. Åñëè ôàéë ñóùåñòâóåò, ôóíêöèÿ âîçâðàùàåò TRUE, èíà÷å - FALSE.
  if (AllTest || Check || Copy)
   {
    sComment = StringConcatenate(sComment, "1.1.  Íàëè÷èå èñõîäíîãî è öåëåâîãî ôàéëîâ.\n");
    sComment = StringConcatenate(sComment, "        Èñõîäíûé ôàéë.\n");
    Comment(sComment);
    BOOL bFileCheck = FileCheckW(sFilePathSource);
    sComment = StringConcatenate(sComment, "        FileCheckW(\"", sFilePathSource, "\") = ", bFileCheck, "\n");
    Comment(sComment);
    if (bFileCheck == 0) Alert("Âîçìîæíî, èñõîäíûé ôàéë åù¸ íå ñóùåñòâóåò.");
    sComment = StringConcatenate(sComment, "        Öåëåâîé ôàéë.\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        FileCheckW(\"", sFilePathDest1, "\") = ", FileCheckW(sFilePathDest1), "\n\n");
    Comment(sComment);
    Sleep(30000);
   }
  //=====================================================================================================================================================================
  // 1.2. Ôóíêöèÿ êîïèðóåò ñóùåñòâóþùèé ôàéë. Åñëè ôàéë ñóùåñòâóåò, òî ôóíêöèÿ ïåðåçàïèñûâàåò èõ. Ñòàðûå äàííûå ïðè ýòîì óíè÷òîæàþòñÿ.
  //      Åñëè êîïèðîâàíèå ïðîøëî óñïåøíî, ôóíêöèÿ âîçâðàùàåò TRUE, èíà÷å - FALSE.
  //      Ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå â ñëó÷àå îøèáêè.
  if (AllTest || Copy)
   {
    sComment = StringConcatenate(sComment, "1.2.  Êîïèðîâàíèå ôàéëà: ", FileCopyW(sFilePathSource, sFilePathDest1), "\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        Èñõîäíûé ôàéë.\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        FileCheckW(\"", sFilePathSource, "\") = ", FileCheckW(sFilePathSource), "\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        Öåëåâîé ôàéë.\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        FileCheckW(\"", sFilePathDest1, "\") = ", FileCheckW(sFilePathDest1), "\n\n");
    Comment(sComment);
    Sleep(30000);
   }
  //=====================================================================================================================================================================
  // 1.3. Ôóíêöèÿ óäàëÿåò ôàéë. Åñëè ôàéë óäàë¸í, ôóíêöèÿ âîçâðàùàåò TRUE, èíà÷å - FALSE.
  if (AllTest || Delete || Copy)
   {
    sComment = StringConcatenate(sComment, "1.3.  Óäàëåíèå ôàéëà.\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        FileDeleteW(\"", sFilePathDest1, "\") = ", FileDeleteW(sFilePathDest1), "\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        FileCheckW(\"", sFilePathDest1, "\") = ", FileCheckW(sFilePathDest1), "\n\n");
    Comment(sComment);
    Sleep(30000);
   }
  //=====================================================================================================================================================================
  // 1.4. Ôóíêöèÿ ñîçäà¸ò æ¸ñòêóþ ññûëêó äëÿ óêàçàííîãî ôàéëà. Åñëè æ¸ñòêàÿ ññûëêà ñîçäàíà, ôóíêöèÿ âîçâðàùàåò TRUE, èíà÷å - FALSE.
  //      Ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå â ñëó÷àå îøèáêè.
  if (AllTest || HardLink)
   {
    sComment = StringConcatenate(sComment, "1.4.  Ñîçäàíèå æ¸ñòêîé ññûëêè íà ôàéë.\n");
    sComment = StringConcatenate(sComment, "        Ññûëêè íåò.\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        FileCheckW(\"", sFilePathDest1, "\") = ", FileCheckW(sFilePathDest1), "\n");
    Comment(sComment);
    FileHardLinkW(sFilePathSource, sFilePathDest1);
    sComment = StringConcatenate(sComment, "        Ññûëêà åñòü.\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        FileCheckW(\"", sFilePathDest1, "\") = ", FileCheckW(sFilePathDest1), "\n\n");
    Comment(sComment);
    Sleep(30000);
    FileDeleteW(sPathDest1); // Ìîæíî óäàëèòü äàæå êàòàëîã.
   }
  //=====================================================================================================================================================================
  // 1.5. Ôóíêöèÿ ïåðåìåùàåò (ïåðåèìåíîâûâàåò) ñóùåñòâóþùèé ôàéë. Ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå, åñëè êàòàëîã ïåðåìåùàåòñÿ íà äðóãîé òîì.
  //      Åñëè ïåðåìåùåíèå ïðîøëî óñïåøíî, ôóíêöèÿ âîçâðàùàåò TRUE, èíà÷å - FALSE.
  //      Ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå â ñëó÷àå îøèáêè.
  if (AllTest || Move)
   {
    sComment = StringConcatenate(sComment, "1.5.  Ïåðåìåùåíèå ôàéëà.\n");
    sComment = StringConcatenate(sComment, "        Ôàéëà íåò.\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        FileCheckW(\"", sFilePathDest1, "\") = ", FileCheckW(sFilePathDest1), "\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        Ïåðåìåùåíèå: ", FileMoveW(sFilePathSource, sFilePathDest1), "\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        Ôàéë åñòü.\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        FileCheckW(\"", sFilePathDest1, "\") = ", FileCheckW(sFilePathDest1), "\n\n");
    Comment(sComment);
    Sleep(30000);
    sComment = StringConcatenate(sComment, "        Ïåðåìåùàåì ôàéë îáðàòíî.\n");
    sComment = StringConcatenate(sComment, "        Ôàéëà íåò.\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        FileCheckW(\"", sFilePathSource, "\") = ", FileCheckW(sFilePathSource), "\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        Ïåðåìåùåíèå: ", FileMoveW(sFilePathDest1, sFilePathSource), "\n"); // Ïåðåìåùàåì îáðàòíî.
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        Ôàéë åñòü.\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        FileCheckW(\"", sFilePathSource, "\") = ", FileCheckW(sFilePathSource), "\n\n");
    Comment(sComment);
    Sleep(30000);
   }
  //=====================================================================================================================================================================
  // 1.6. Ôóíêöèÿ ñîçäà¸ò ñèìâîëüíóþ ññûëêó äëÿ óêàçàííîãî ôàéëà. Åñëè ñèìâîëüíàÿ ññûëêà ñîçäàíà, ôóíêöèÿ âîçâðàùàåò TRUE, èíà÷å - FALSE.
  //      Ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå â ñëó÷àå îøèáêè.
  if (AllTest || SymbolicLink)
   {
    sComment = StringConcatenate(sComment, "1.6.  Ñîçäàíèå ñèìâîëüíîé ññûëêè íà ôàéë.\n");
    sComment = StringConcatenate(sComment, "        Ôàéëà íåò.\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        FileCheckW(\"", sFilePathDest1, "\") = ", FileCheckW(sFilePathDest1), "\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        FileSymbolicLinkW() = ", FileSymbolicLinkW(sFilePathSource, sFilePathDest1), "\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        Ôàéë åñòü.\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        FileCheckW(\"", sFilePathDest1, "\") = ", FileCheckW(sFilePathDest1), "\n\n");
    Comment(sComment);
    Sleep(30000);
    FileDeleteW(sPathDest1); // Ìîæíî óäàëèòü äàæå êàòàëîã.
   }
  //æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
  // 2. ÔÓÍÊÖÈÈ ÎÁÙÈÕ ÎÏÅÐÀÖÈÉ Ñ ÔÀÉËÀÌÈ ÏÎ ÑÈÑÒÅÌÍÎÌÓ ÄÅÑÊÐÈÏÒÎÐÓ ÔÀÉËÀ.
  //æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
  if (AllTest || Clear || CloseHandle || CopyByHandle || DeleteByHandle || FlushApply || GetSize || HardLinkByHandle || MoveByHandle || Resize || SymbolicLinkByHandle)
   {//===================================================================================================================================================================
    sComment = StringConcatenate(sComment, "1.2.  Êîïèðîâàíèå ôàéëà: ", FileCopyW(sFilePathSource, sFilePathDest1), "\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        Èñõîäíûé ôàéë.\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        FileCheckW(\"", sFilePathSource, "\") = ", FileCheckW(sFilePathSource), "\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        Öåëåâîé ôàéë.\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        FileCheckW(\"", sFilePathDest1, "\") = ", FileCheckW(sFilePathDest1), "\n");
    Comment(sComment);
    Sleep(15000);
    //===================================================================================================================================================================
    // 2.2.4. Ôóíêöèÿ îòêðûâàåò ôàéë òîëüêî, åñëè îí ñóùåñòâóåò. Ôóíêöèÿ âîçâðàùàåò ñèñòåìíûé äåñêðèïòîð îòêðûòîãî ôàéëà â ñëó÷àå óñïåõà, èíà÷å - NULL.
    sComment = StringConcatenate(sComment, "3.4.  Îòêðûâàåì ôàéë, åñëè îí ñóùåñòâóåò.\n");
    Comment(sComment);
    hFile = FileOpenExistingW(sFilePathDest1, GENERIC_ALL, SHARE_DELETE|SHARE_READ|SHARE_WRITE);
    sComment = StringConcatenate(sComment, "        Ñèñòåìíûé äåñêðèïòîð ôàéëà: ", hFile, "\n\n");
    Comment(sComment);
    Sleep(15000);
    //===================================================================================================================================================================
   }
  //æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
  if (AllTest || GetSize || Clear || Resize || FlushApply)
   {//===================================================================================================================================================================
    // 2.6. Ôóíêöèÿ âîçâðàùàåò ðàçìåð ôàéëà.
    sComment = StringConcatenate(sComment, "2.6.  Ðàçìåð ôàéëà: ", FileGetSize(hFile), ".\n");
    Comment(sComment);
    //===================================================================================================================================================================
    // 2.1. Ôóíêöèÿ î÷èùàåò ôàéë îò ñîäåðæèìîãî.
    sComment = StringConcatenate(sComment, "2.1.  Î÷èùàåì ôàéë îò ñîäåðæèìîãî.\n");
    Comment(sComment);
    FileClear(hFile);
    //===================================================================================================================================================================
    // 2.6. Ôóíêöèÿ âîçâðàùàåò ðàçìåð ôàéëà.
    sComment = StringConcatenate(sComment, "2.6.  Ðàçìåð ôàéëà: ", FileGetSize(hFile), " (0 áàéò).\n");
    Comment(sComment);
    //===================================================================================================================================================================
    // 2.9. Ôóíêöèÿ óñòàíàâëèâàåò ðàçìåð ôàéëà.
    sComment = StringConcatenate(sComment, "2.9.  Óñòàíàâëèâàåì ðàçìåð ôàéëà (10000 áàéò).\n");
    Comment(sComment);
    FileResize(hFile, 10000);
    //===================================================================================================================================================================
    // 2.6. Ôóíêöèÿ âîçâðàùàåò ðàçìåð ôàéëà.
    sComment = StringConcatenate(sComment, "2.6.  Ðàçìåð ôàéëà: ", FileGetSize(hFile), " (10000 áàéò).\n");
    Comment(sComment);
    //===================================================================================================================================================================
    // 2.5. Ôóíêöèÿ î÷èùàåò áóôåð äëÿ óêàçàííîãî ôàéëà è çàñòàâëÿåò âñå áóôåðèçèðîâàííûå äàííûå áûòü çàïèñàííûìè â ýòîì ôàéëå.
    sComment = StringConcatenate(sComment, "2.5.  Î÷èùàåì áóôåð è çàñòàâëÿåì âñå áóôåðèçèðîâàííûå äàííûå áûòü çàïèñàííûìè â ýòîì ôàéëå.\n\n");
    Comment(sComment);
    FileFlushApply(hFile);
    //===================================================================================================================================================================
   }
  //æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
  if (AllTest || CopyByHandle)
   {//===================================================================================================================================================================
    // 2.3. Ôóíêöèÿ êîïèðóåò ôàéë. Åñëè ôàéë ñóùåñòâóåò, òî ôóíêöèÿ ïåðåçàïèñûâàåò åãî. Ñòàðûå äàííûå ïðè ýòîì óíè÷òîæàþòñÿ.
    //        Åñëè èìÿ ôàéëà ñîäåðæèò íåñóùåñòâóþùóþ äèðåêòîðèþ, òî ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå.
    sComment = StringConcatenate(sComment, "2.3.  Êîïèðîâàíèå ôàéëà: ");
    Comment(sComment);
    sComment = StringConcatenate(sComment, FileCopyByHandleW(hFile, sFilePathDest2), "\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        Èñõîäíûé ôàéë.\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        FileCheckW(\"", sFilePathDest1, "\") = ", FileCheckW(sFilePathDest1), "\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        Öåëåâîé ôàéë.\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        FileCheckW(\"", sFilePathDest2, "\") = ", FileCheckW(sFilePathDest2), "\n\n");
    Comment(sComment);
    Sleep(30000);
    sComment = StringConcatenate(sComment, "        Óäàëåíèå èñõîäíîãî è öåëåâîãî ôàéëîâ.\n\n");
    FileDeleteW(sFilePathDest2); // Óäàëÿåì öåëåâîé ôàéë.
   }
  //=====================================================================================================================================================================
  // 2.7. Ôóíêöèÿ ñîçäà¸ò æ¸ñòêóþ ññûëêó äëÿ óêàçàííîãî ôàéëà.
  if (AllTest || HardLinkByHandle)
   {
    sComment = StringConcatenate(sComment, "2.7.  Ñîçäàíèå æ¸ñòêîé ññûëêè íà ôàéë.\n");
    sComment = StringConcatenate(sComment, "        Ññûëêè íåò.\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        FileCheckW(\"", sFilePathDest2, "\") = ", FileCheckW(sFilePathDest2), "\n");
    Comment(sComment);
    FileHardLinkByHandleW(hFile, sFilePathDest2);
    sComment = StringConcatenate(sComment, "        Ññûëêà åñòü.\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        FileCheckW(\"", sFilePathDest2, "\") = ", FileCheckW(sFilePathDest2), "\n\n");
    Comment(sComment);
    Sleep(30000);
    FileDeleteW(sFilePathDest2); // Óäàëÿåì ôàéë.
   }
  //=====================================================================================================================================================================
  // 2.8. Ôóíêöèÿ ñîçäà¸ò æ¸ñòêóþ ññûëêó äëÿ óêàçàííîãî ôàéëà.
  if (AllTest || MoveByHandle)
   {
    sComment = StringConcatenate(sComment, "1.8.  Ïåðåìåùåíèå ôàéëà.\n");
    sComment = StringConcatenate(sComment, "        Ôàéëà íåò.\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        FileCheckW(\"", sFilePathDest2, "\") = ", FileCheckW(sFilePathDest2), "\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        Ïåðåìåùåíèå: ", FileMoveByHandleW(hFile, sFilePathDest2), "\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        Ôàéë åñòü.\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        FileCheckW(\"", sFilePathDest2, "\") = ", FileCheckW(sFilePathDest2), "\n\n");
    Comment(sComment);
    Sleep(30000);
    FileDeleteW(sFilePathDest2); // Óäàëÿåì ôàéë.
   }
  //=====================================================================================================================================================================
  // 2.10. Ôóíêöèÿ ñîçäà¸ò ñèìâîëüíóþ ññûëêó äëÿ óêàçàííîãî ôàéëà. Åñëè ñèìâîëüíàÿ ññûëêà ñîçäàíà, ôóíêöèÿ âîçâðàùàåò TRUE, èíà÷å - FALSE.
  if (AllTest || SymbolicLink)
   {
    sComment = StringConcatenate(sComment, "2.10.  Ñîçäàíèå ñèìâîëüíîé ññûëêè íà ôàéë.\n");
    sComment = StringConcatenate(sComment, "         Ôàéëà íåò.\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "         FileCheckW(\"", sFilePathDest2, "\") = ", FileCheckW(sFilePathDest2), "\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "         FileMoveW() = ", FileSymbolicLinkByHandleW(hFile, sFilePathDest2), "\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "         Ôàéë åñòü.\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "         FileCheckW(\"", sFilePathDest2, "\") = ", FileCheckW(sFilePathDest2), "\n\n");
    Comment(sComment);
    Sleep(30000);
    FileDeleteW(sFilePathDest2); // Óäàëÿåì ôàéë.
   }
  if (AllTest || Clear || CloseHandle || CopyByHandle || DeleteByHandle || FlushApply || GetSize || HardLinkByHandle || MoveByHandle || Resize || SymbolicLinkByHandle)
   {//===================================================================================================================================================================
    // 2.4. Ôóíêöèÿ óäàëÿåò ôàéë.
    if (DeleteByHandle && !CloseHandle)
     {
      sComment = StringConcatenate(sComment, "2.4.  Óäàëÿåì ôàéë ïî åãî ñèñòåìíîìó äåñêðèïòîðó.\n");
      Comment(sComment);
      sComment = StringConcatenate(sComment, "        FileCheckW(\"", sFilePathDest1, "\") = ", FileCheckW(sFilePathDest1), "\n\n");
      Comment(sComment);
      FileDeleteByHandle(hFile);
     }
    else
    //===================================================================================================================================================================
    // 2.2. Ôóíêöèÿ çàêðûâàåò ñèñòåìíûé äåñêðèïòîð ôàéëà.
    if (!DeleteByHandle && CloseHandle)
     {
      sComment = StringConcatenate(sComment, "2.2.  Çàêðûâàåì ñèñòåìíûé äåñêðèïòîð (", hFile, ").\n\n");
      Comment(sComment);
      FileCloseHandle(hFile);
     }
    else
    //===================================================================================================================================================================
    // 2.4. Ôóíêöèÿ óäàëÿåò ôàéë.
    if (AllTest || Clear || CopyByHandle || FlushApply || GetSize || HardLinkByHandle || Resize || SymbolicLinkByHandle)
     {
      sComment = StringConcatenate(sComment, "2.4.  Óäàëÿåì ôàéë ïî åãî ñèñòåìíîìó äåñêðèïòîðó.\n");
      Comment(sComment);
      sComment = StringConcatenate(sComment, "        FileCheckW(\"", sFilePathDest1, "\") = ", FileCheckW(sFilePathDest1), "\n\n");
      Comment(sComment);
      FileDeleteByHandle(hFile);
     }
    else Alert("Âûáðàíî íåïðàâèëüíîå ñî÷åòàíèå òåñòîâ. DeleteByHandle è CloseHandle íå ìîãóò áûòü âêëþ÷åíû îäíîâðåìåííî!");
   }
  //æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
  // 4. ÔÓÍÊÖÈÈ ÄËß ÐÀÁÎÒÛ Ñ ÔÀÉËÎÂÛÌ ÓÊÀÇÀÒÅËÅÌ.
  //æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
  if (AllTest || POINTER)
   {//===================================================================================================================================================================
    // 3.1.1. Ôóíêöèÿ ñîçäàåò íîâûé ôàéë âñåãäà. Åñëè ôàéë ñóùåñòâóåò, ôóíêöèÿ ïåðåïèñûâàåò ôàéë.
    //        Ôóíêöèÿ âîçâðàùàåò ñèñòåìíûé äåñêðèïòîð îòêðûòîãî ôàéëà â ñëó÷àå óñïåõà, èíà÷å - NULL.
    sComment = StringConcatenate(sComment, "3.1.  Ñîçäà¸ì íîâûé ôàéë âñåãäà.\n");
    Comment(sComment);
    int hFilePtr = FileCreateAlwaysW(sFilePathDest1, GENERIC_ALL, SHARE_READ|SHARE_WRITE);
    sComment = StringConcatenate(sComment, "        Ñèñòåìíûé äåñêðèïòîð ôàéëà: ", hFilePtr, "\n\n");
    Comment(sComment);
    //===================================================================================================================================================================
    // 6.5. Ôóíêöèÿ çàïèñûâàåò â ôàéë ìàññèâ ñ äàííûìè òèïà INT (4 áàéòà) è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê ìàññèâà.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    long ulTest = 0;
    int anArr[3] = {1, 2, 3};
    sComment = StringConcatenate(sComment, "6.5.  Ôóíêöèÿ çàïèñûâàåò â ôàéë ìàññèâ ñ äàííûìè òèïà INT (4 áàéòà) è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê ìàññèâà.\n");
    Comment(sComment);
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî ÿ÷ååê: ", FileWriteIntArray(hFilePtr, anArr, ArraySize(anArr), 0, 3), "\n\n");
    Comment(sComment);
    //===================================================================================================================================================================
    // 4.2. Ôóíêöèÿ ïåðåìåùàåò ôàéëîâûé óêàçàòåëü îò íà÷àëà ôàéëà è âîçâðàùàåò íîâîå ïîëîæåíèå ôàéëîâîãî óêàçàòåëÿ.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "4.2.  Ôóíêöèÿ ïåðåìåùàåò ôàéëîâûé óêàçàòåëü îò íà÷àëà ôàéëà è âîçâðàùàåò íîâîå ïîëîæåíèå ôàéëîâîãî óêàçàòåëÿ.\n");
    Comment(sComment);
    
    ulTest = FileSetPointerBegin(hFilePtr, 2 * sizeof(int));
    sComment = StringConcatenate(sComment, "        Ïåðåìåùåíèå íà: ", ulTest, " (", 2 * sizeof(int), ")\n");
    Comment(sComment);
    if (ulTest != 2 * sizeof(int)) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    ulTest = FileReadInt(hFilePtr);
    sComment = StringConcatenate(sComment, "        ×èòàåì: ", ulTest, " (3)\n");
    Comment(sComment);
    if (ulTest != 3) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    
    ulTest = FileSetPointerBegin(hFilePtr, 1 * sizeof(int));
    sComment = StringConcatenate(sComment, "        Ïåðåìåùåíèå íà: ", ulTest, " (", 1 * sizeof(int), ")\n");
    Comment(sComment);
    if (ulTest != 1 * sizeof(int)) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    ulTest = FileReadInt(hFilePtr);
    sComment = StringConcatenate(sComment, "        ×èòàåì: ", ulTest, " (2)\n");
    Comment(sComment);
    if (ulTest != 2) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    
    ulTest = FileSetPointerBegin(hFilePtr, 0 * sizeof(int));
    sComment = StringConcatenate(sComment, "        Ïåðåìåùåíèå íà: ", ulTest, " (", 0 * sizeof(int), ")\n");
    Comment(sComment);
    if (ulTest != 0 * sizeof(int)) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    ulTest = FileReadInt(hFilePtr);
    sComment = StringConcatenate(sComment, "        ×èòàåì: ", ulTest, " (1)\n\n");
    Comment(sComment);
    if (ulTest != 1) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 4.3. Ôóíêöèÿ ïåðåìåùàåò ôàéëîâûé óêàçàòåëü îò òåêóùåãî ïîëîæåíèÿ ôàéëîâîãî óêàçàòåëÿ è âîçâðàùàåò íîâîå ïîëîæåíèå ôàéëîâîãî óêàçàòåëÿ.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "4.3.  Ôóíêöèÿ ïåðåìåùàåò ôàéëîâûé óêàçàòåëü îò òåêóùåãî ïîëîæåíèÿ ôàéëîâîãî óêàçàòåëÿ è âîçâðàùàåò íîâîå ïîëîæåíèå ôàéëîâîãî óêàçàòåëÿ.\n");
    Comment(sComment);
    
    ulTest = FileSetPointerCurrent(hFilePtr, 1 * sizeof(int));
    sComment = StringConcatenate(sComment, "        Ïåðåìåùåíèå íà: ", ulTest, " (", 2 * sizeof(int), ")\n");
    Comment(sComment);
    if (ulTest != 2 * sizeof(int)) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    ulTest = FileReadInt(hFilePtr);
    sComment = StringConcatenate(sComment, "        ×èòàåì: ", ulTest, " (3)\n");
    Comment(sComment);
    if (ulTest != 3) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    
    ulTest = FileSetPointerCurrent(hFilePtr, -2 * sizeof(int));
    sComment = StringConcatenate(sComment, "        Ïåðåìåùåíèå íà: ", ulTest, " (", 1 * sizeof(int), ")\n");
    Comment(sComment);
    if (ulTest != 1 * sizeof(int)) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    ulTest = FileReadInt(hFilePtr);
    sComment = StringConcatenate(sComment, "        ×èòàåì: ", ulTest, " (2)\n");
    Comment(sComment);
    if (ulTest != 2) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    
    ulTest = FileSetPointerCurrent(hFilePtr, -2 * sizeof(int));
    sComment = StringConcatenate(sComment, "        Ïåðåìåùåíèå íà: ", ulTest, " (", 0 * sizeof(int), ")\n");
    Comment(sComment);
    if (ulTest != 0 * sizeof(int)) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    ulTest = FileReadInt(hFilePtr);
    sComment = StringConcatenate(sComment, "        ×èòàåì: ", ulTest, " (1)\n\n");
    Comment(sComment);
    if (ulTest != 1) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 4.4. Ôóíêöèÿ ïåðåìåùàåò ôàéëîâûé óêàçàòåëü îò êîíöà ôàéëà è âîçâðàùàåò íîâîå ïîëîæåíèå ôàéëîâîãî óêàçàòåëÿ.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "4.4.  Ôóíêöèÿ ïåðåìåùàåò ôàéëîâûé óêàçàòåëü îò êîíöà ôàéëà è âîçâðàùàåò íîâîå ïîëîæåíèå ôàéëîâîãî óêàçàòåëÿ.\n");
    Comment(sComment);
    
    ulTest = FileSetPointerEnd(hFilePtr, -1 * sizeof(int));
    sComment = StringConcatenate(sComment, "        Ïåðåìåùåíèå íà: ", ulTest, " (", 2 * sizeof(int), ")\n");
    Comment(sComment);
    if (ulTest != 2 * sizeof(int)) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    ulTest = FileReadInt(hFilePtr);
    sComment = StringConcatenate(sComment, "        ×èòàåì: ", ulTest, " (3)\n");
    Comment(sComment);
    if (ulTest != 3) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    
    ulTest = FileSetPointerEnd(hFilePtr, -2 * sizeof(int));
    sComment = StringConcatenate(sComment, "        Ïåðåìåùåíèå íà: ", ulTest, " (", 1 * sizeof(int), ")\n");
    Comment(sComment);
    if (ulTest != 1 * sizeof(int)) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    ulTest = FileReadInt(hFilePtr);
    sComment = StringConcatenate(sComment, "        ×èòàåì: ", ulTest, " (2)\n");
    Comment(sComment);
    if (ulTest != 2) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    
    ulTest = FileSetPointerEnd(hFilePtr, -3 * sizeof(int));
    sComment = StringConcatenate(sComment, "        Ïåðåìåùåíèå íà: ", ulTest, " (", 0 * sizeof(int), ")\n");
    Comment(sComment);
    if (ulTest != 0 * sizeof(int)) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    ulTest = FileReadInt(hFilePtr);
    sComment = StringConcatenate(sComment, "        ×èòàåì: ", ulTest, " (1)\n");
    Comment(sComment);
    if (ulTest != 1) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 2.4. Ôóíêöèÿ óäàëÿåò ôàéë.
    sComment = StringConcatenate(sComment, "2.4.  Óäàëÿåì ôàéë ïî åãî ñèñòåìíîìó äåñêðèïòîðó.\n");
    Comment(sComment);
    FileDeleteByHandle(hFilePtr);
    //===================================================================================================================================================================
   }
  //æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
  // 5-6. ÔÓÍÊÖÈÈ ÇÀÏÈÑÈ Â ÔÀÉË.
  //æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
  if (AllTest || WRITE)
   {
    ulong ulTest = 0;
    //===================================================================================================================================================================
    // 3.1.1. Ôóíêöèÿ ñîçäàåò íîâûé ôàéë âñåãäà. Åñëè ôàéë ñóùåñòâóåò, ôóíêöèÿ ïåðåïèñûâàåò ôàéë.
    //        Ôóíêöèÿ âîçâðàùàåò ñèñòåìíûé äåñêðèïòîð îòêðûòîãî ôàéëà â ñëó÷àå óñïåõà, èíà÷å - NULL.
    sComment = StringConcatenate(sComment, "3.1.  Ñîçäà¸ì íîâûé ôàéë âñåãäà.\n");
    Comment(sComment);
    int hFileWrite = FileCreateAlwaysW(sFilePathDest1, GENERIC_ALL, SHARE_READ|SHARE_WRITE);
    sComment = StringConcatenate(sComment, "        Ñèñòåìíûé äåñêðèïòîð ôàéëà: ", hFileWrite, "\n\n");
    Comment(sComment);
    //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    // 5. ÔÓÍÊÖÈÈ ÇÀÏÈÑÈ Â ÔÀÉË ×ÈÑÅË È ÑÒÐÎÊ.
    //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    sComment = StringConcatenate(sComment, "5.     Çàïèñü ÷èñåë è ñòðîê.\n");
    Comment(sComment);
    //===================================================================================================================================================================
    // 5.1. Ôóíêöèÿ çàïèñûâàåò â ôàéë ëîãè÷åñêîå çíà÷åíèå BOOL (1 áàéò) è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ áàéò.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "5.1.  Çàïèñûâàåì â ôàéë ëîãè÷åñêîå çíà÷åíèå BOOL.\n");
    Comment(sComment);
    ulTest = FileWriteBoolean(hFileWrite, abWrite[0]);
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî çàïèñàííûõ áàéò: ", ulTest, " (1)\n");
    Comment(sComment);
    if (ulTest != 1) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 5.2. Ôóíêöèÿ çàïèñûâàåò â ôàéë ÷èñëî òèïà CHAR (1 áàéò) è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ áàéò.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "5.2.  Çàïèñûâàåì â ôàéë ÷èñëî òèïà CHAR.\n");
    Comment(sComment);
    ulTest = FileWriteChar(hFileWrite, acWrite[0]);
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî çàïèñàííûõ áàéò: ", ulTest, " (1)\n");
    Comment(sComment);
    if (ulTest != 1) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 5.3. Ôóíêöèÿ çàïèñûâàåò â ôàéë ÷èñëî òèïà UCHAR (1 áàéò) è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ áàéò.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "5.3.  Çàïèñûâàåì â ôàéë ÷èñëî òèïà UCHAR.\n");
    Comment(sComment);
    ulTest = FileWriteUChar(hFileWrite, aucWrite[0]);
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî çàïèñàííûõ áàéò: ", ulTest, " (1)\n");
    Comment(sComment);
    if (ulTest != 1) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 5.4. Ôóíêöèÿ çàïèñûâàåò â ôàéë ÷èñëî òèïà SHORT (2 áàéòà) è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ áàéò.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "5.4.  Çàïèñûâàåì â ôàéë ÷èñëî òèïà SHORT.\n");
    Comment(sComment);
    ulTest = FileWriteShort(hFileWrite, ashWrite[0]);
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî çàïèñàííûõ áàéò: ", ulTest, " (2)\n");
    Comment(sComment);
    if (ulTest != 2) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 5.5. Ôóíêöèÿ çàïèñûâàåò â ôàéë ÷èñëî òèïà USHORT (2 áàéòà) è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ áàéò.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "5.5.  Çàïèñûâàåì â ôàéë ÷èñëî òèïà USHORT.\n");
    Comment(sComment);
    ulTest = FileWriteUShort(hFileWrite, aushWrite[0]);
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî çàïèñàííûõ áàéò: ", ulTest, " (2)\n");
    Comment(sComment);
    if (ulTest != 2) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 5.6. Ôóíêöèÿ çàïèñûâàåò â ôàéë ÷èñëî òèïà INT (4 áàéòà) è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ áàéò.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "5.6.  Çàïèñûâàåì â ôàéë ÷èñëî òèïà INT.\n");
    Comment(sComment);
    ulTest = FileWriteInt(hFileWrite, aiWrite[0]);
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî çàïèñàííûõ áàéò: ", ulTest, " (4)\n");
    Comment(sComment);
    if (ulTest != 4) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 5.7. Ôóíêöèÿ çàïèñûâàåò â ôàéë ÷èñëî òèïà UINT (4 áàéòà) è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ áàéò.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "5.7.  Çàïèñûâàåì â ôàéë ÷èñëî òèïà UINT.\n");
    Comment(sComment);
    ulTest = FileWriteUInt(hFileWrite, auiWrite[0]);
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî çàïèñàííûõ áàéò: ", ulTest, " (4)\n");
    Comment(sComment);
    if (ulTest != 4) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 5.8. Ôóíêöèÿ çàïèñûâàåò â ôàéë ÷èñëî òèïà INT64 (8 áàéò) è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ áàéò.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "5.8.  Çàïèñûâàåì â ôàéë ÷èñëî òèïà INT64.\n");
    Comment(sComment);
    ulTest = FileWriteInt64(hFileWrite, alWrite[0]);
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî çàïèñàííûõ áàéò: ", ulTest, " (8)\n");
    Comment(sComment);
    if (ulTest != 8) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 5.9. Ôóíêöèÿ çàïèñûâàåò â ôàéë ÷èñëî òèïà UINT64 (8 áàéò) è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ áàéò.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "5.9.  Çàïèñûâàåì â ôàéë ÷èñëî òèïà UINT64.\n");
    Comment(sComment);
    ulTest = FileWriteUInt64(hFileWrite, aulWrite[0]);
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî çàïèñàííûõ áàéò: ", ulTest, " (8)\n");
    Comment(sComment);
    if (ulTest != 8) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 5.10. Ôóíêöèÿ çàïèñûâàåò â ôàéë ÷èñëî òèïà FLOAT (4 áàéòà) è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ áàéò.
    //        ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "5.10.  Çàïèñûâàåì â ôàéë ÷èñëî òèïà FLOAT.\n");
    Comment(sComment);
    ulTest = FileWriteFlt(hFileWrite, afWrite[0]);
    sComment = StringConcatenate(sComment, "         Êîëè÷åñòâî çàïèñàííûõ áàéò: ", ulTest, " (4)\n");
    Comment(sComment);
    if (ulTest != 4) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 5.11. Ôóíêöèÿ çàïèñûâàåò â ôàéë ÷èñëî òèïà DOUBLE (8 áàéò) è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ áàéò.
    //        ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "5.11.  Çàïèñûâàåì â ôàéë ÷èñëî òèïà DOUBLE.\n");
    Comment(sComment);
    ulTest = FileWriteDbl(hFileWrite, adWrite[0]);
    sComment = StringConcatenate(sComment, "         Êîëè÷åñòâî çàïèñàííûõ áàéò: ", ulTest, " (8)\n");
    Comment(sComment);
    if (ulTest != 8) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 5.12.1. Ôóíêöèÿ çàïèñûâàåò â ôàéë ANSI-ñòðîêó è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ áàéò.
    //          ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "5.12.1.  Çàïèñûâàåì â ôàéë ANSI-ñòðîêó.\n");
    Comment(sComment);
    ulTest = FileWriteStringA(hFileWrite, szWriteAnsi);
    sComment = StringConcatenate(sComment, "           Êîëè÷åñòâî çàïèñàííûõ áàéò: ", ulTest, " (11)\n");
    Comment(sComment);
    if (ulTest != 11) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //-------------------------------------------------------------------------------------------------------------------------------------------------------------------
    // 5.12.2. Ôóíêöèÿ çàïèñûâàåò â ôàéë UNICODE-ñòðîêó è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ áàéò.
    //          ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "5.12.2.  Çàïèñûâàåì â ôàéë UNICODE-ñòðîêó.\n");
    Comment(sComment);
    ulTest = FileWriteStringW(hFileWrite, sWriteUnicode);
    sComment = StringConcatenate(sComment, "           Êîëè÷åñòâî çàïèñàííûõ áàéò: ", ulTest, " (22)\n\n");
    Comment(sComment);
    if (ulTest != 22) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    // 6. ÔÓÍÊÖÈÈ ÇÀÏÈÑÈ ÌÀÑÑÈÂÎÂ Â ÔÀÉË.
    //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    sComment = StringConcatenate(sComment, "6.     Çàïèñü ìàññèâîâ.\n");
    Comment(sComment);
    //===================================================================================================================================================================
    // 6.1. Ôóíêöèÿ çàïèñûâàåò â ôàéë ìàññèâ ñ äàííûìè òèïà BOOL (1 áàéò) è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê ìàññèâà.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "6.1.  Çàïèñûâàåì â ôàéë ìàññèâ ñ äàííûìè òèïà BOOL.\n");
    Comment(sComment);
    ulTest = FileWriteBoolArray(hFileWrite, abWrite, ArraySize(abWrite), 0, ArraySize(abWrite));
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê: ", ulTest, " (10)\n");
    Comment(sComment);
    if (ulTest != 10) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 6.2. Ôóíêöèÿ çàïèñûâàåò â ôàéë ìàññèâ ñ äàííûìè òèïà CHAR (1 áàéò) è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê ìàññèâà.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "6.2.  Çàïèñûâàåì â ôàéë ìàññèâ ñ äàííûìè òèïà CHAR.\n");
    Comment(sComment);
    ulTest = FileWriteCharArray(hFileWrite, acWrite, ArraySize(acWrite), 0, ArraySize(acWrite));
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê: ", ulTest, " (10)\n");
    Comment(sComment);
    if (ulTest != 10) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 6.3. Ôóíêöèÿ çàïèñûâàåò â ôàéë ìàññèâ ñ äàííûìè òèïà UCHAR (1 áàéò) è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê ìàññèâà.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "6.3.  Çàïèñûâàåì â ôàéë ìàññèâ ñ äàííûìè òèïà UCHAR.\n");
    Comment(sComment);
    ulTest = FileWriteUCharArray(hFileWrite, aucWrite, ArraySize(aucWrite), 0, ArraySize(aucWrite));
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê: ", ulTest, " (10)\n");
    Comment(sComment);
    if (ulTest != 10) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 6.4. Ôóíêöèÿ çàïèñûâàåò â ôàéë ìàññèâ ñ äàííûìè òèïà SHORT (2 áàéòà) è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê ìàññèâà.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "6.4.  Çàïèñûâàåì â ôàéë ìàññèâ ñ äàííûìè òèïà SHORT.\n");
    Comment(sComment);
    ulTest = FileWriteShortArray(hFileWrite, ashWrite, ArraySize(ashWrite), 0, ArraySize(ashWrite));
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê: ", ulTest, " (10)\n");
    Comment(sComment);
    if (ulTest != 10) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 6.5. Ôóíêöèÿ çàïèñûâàåò â ôàéë ìàññèâ ñ äàííûìè òèïà USHORT (2 áàéòà) è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê ìàññèâà.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "6.4.  Çàïèñûâàåì â ôàéë ìàññèâ ñ äàííûìè òèïà USHORT.\n");
    Comment(sComment);
    ulTest = FileWriteUShortArray(hFileWrite, aushWrite, ArraySize(aushWrite), 0, ArraySize(aushWrite));
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê: ", ulTest, " (10)\n");
    Comment(sComment);
    if (ulTest != 10) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 6.6. Ôóíêöèÿ çàïèñûâàåò â ôàéë ìàññèâ ñ äàííûìè òèïà INT (4 áàéòà) è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê ìàññèâà.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "6.6.  Çàïèñûâàåì â ôàéë ìàññèâ ñ äàííûìè òèïà INT.\n");
    Comment(sComment);
    ulTest = FileWriteIntArray(hFileWrite, aiWrite, ArraySize(aiWrite), 0, ArraySize(aiWrite));
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê: ", ulTest, " (10)\n");
    Comment(sComment);
    if (ulTest != 10) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 6.7. Ôóíêöèÿ çàïèñûâàåò â ôàéë ìàññèâ ñ äàííûìè òèïà UINT (4 áàéòà) è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê ìàññèâà.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "6.7.  Çàïèñûâàåì â ôàéë ìàññèâ ñ äàííûìè òèïà UINT.\n");
    Comment(sComment);
    ulTest = FileWriteUIntArray(hFileWrite, auiWrite, ArraySize(auiWrite), 0, ArraySize(auiWrite));
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê: ", ulTest, " (10)\n");
    Comment(sComment);
    if (ulTest != 10) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 6.8. Ôóíêöèÿ çàïèñûâàåò â ôàéë ìàññèâ ñ äàííûìè òèïà INT64 (8 áàéò) è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê ìàññèâà.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "6.8.  Çàïèñûâàåì â ôàéë ìàññèâ ñ äàííûìè òèïà INT64.\n");
    Comment(sComment);
    ulTest = FileWriteLongArray(hFileWrite, alWrite, ArraySize(alWrite), 0, ArraySize(alWrite));
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê: ", ulTest, " (10)\n");
    Comment(sComment);
    if (ulTest != 10) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 6.9. Ôóíêöèÿ çàïèñûâàåò â ôàéë ìàññèâ ñ äàííûìè òèïà UINT64 (8 áàéò) è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê ìàññèâà.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "6.9.  Çàïèñûâàåì â ôàéë ìàññèâ ñ äàííûìè òèïà UINT64.\n");
    Comment(sComment);
    ulTest = FileWriteULongArray(hFileWrite, aulWrite, ArraySize(aulWrite), 0, ArraySize(aulWrite));
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê: ", ulTest, " (10)\n");
    Comment(sComment);
    if (ulTest != 10) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 6.10. Ôóíêöèÿ çàïèñûâàåò â ôàéë ìàññèâ ñ äàííûìè òèïà FLOAT (4 áàéòà) è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê ìàññèâà.
    //        ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "6.10.  Çàïèñûâàåì â ôàéë ìàññèâ ñ äàííûìè òèïà FLOAT.\n");
    Comment(sComment);
    ulTest = FileWriteFloatArray(hFileWrite, afWrite, ArraySize(afWrite), 0, ArraySize(afWrite));
    sComment = StringConcatenate(sComment, "         Êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê: ", ulTest, " (10)\n");
    Comment(sComment);
    if (ulTest != 10) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 6.11. Ôóíêöèÿ çàïèñûâàåò â ôàéë ìàññèâ ñ äàííûìè òèïà DOUBLE (8 áàéò) è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê ìàññèâà.
    //        ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "6.11.  Çàïèñûâàåì â ôàéë ìàññèâ ñ äàííûìè òèïà DOUBLE.\n");
    Comment(sComment);
    ulTest = FileWriteDoubleArray(hFileWrite, adWrite, ArraySize(adWrite), 0, ArraySize(adWrite));
    sComment = StringConcatenate(sComment, "         Êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê: ", ulTest, " (10)\n");
    Comment(sComment);
    if (ulTest != 10) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 6.12.2. Ôóíêöèÿ çàïèñûâàåò â ôàéë ìàññèâ ñòðîê òèïà MQLSTRW è âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê ìàññèâà.
    //         Ìàññèâ çàïèñûâàþòñÿ ïîñòðî÷íî, ïîñëå êàæäîé ñòðîêè àâòîìàòè÷åñêè äîáàâëÿåòñÿ ïðèçíàê êîíöà ñòðîêè è ïåðåâîäà êàðåòêè ("\r\n").
    //          ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "6.12.2.  Çàïèñûâàåì â ôàéë ìàññèâ ñòðîê òèïà MQLSTRW.\n");
    Comment(sComment);
    ulTest = FileWriteStrArrayMW(hFileWrite, asWrite, ArraySize(asWrite), 0, ArraySize(asWrite));
    sComment = StringConcatenate(sComment, "           Êîëè÷åñòâî çàïèñàííûõ ÿ÷ååê: ", ulTest, " (10)\n\n");
    Comment(sComment);
    if (ulTest != 10) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 2.2. Ôóíêöèÿ çàêðûâàåò ñèñòåìíûé äåñêðèïòîð ôàéëà.
    sComment = StringConcatenate(sComment, "2.2.  Çàêðûâàåì ñèñòåìíûé äåñêðèïòîð (", hFileWrite, ").\n\n");
    Comment(sComment);
    FileCloseHandle(hFileWrite);
    //===================================================================================================================================================================
   }
  //æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
  // 7-8. ÔÓÍÊÖÈÈ ×ÒÅÍÈß ÈÇ ÔÀÉËÀ.
  //æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
  if (AllTest || READ)
   {//===================================================================================================================================================================
    // 3.4.2. Ôóíêöèÿ îòêðûâàåò ôàéë òîëüêî, åñëè îí ñóùåñòâóåò.
    //        Ôóíêöèÿ âîçâðàùàåò ñèñòåìíûé äåñêðèïòîð îòêðûòîãî ôàéëà â ñëó÷àå óñïåõà, èíà÷å - NULL.
    sComment = StringConcatenate(sComment, "3.4.  Îòêðûâàåì ôàéë òîëüêî, åñëè îí ñóùåñòâóåò.\n");
    Comment(sComment);
    int hFileRead = FileOpenExistingW(sFilePathDest1, GENERIC_ALL, SHARE_READ|SHARE_WRITE);
    sComment = StringConcatenate(sComment, "        Ñèñòåìíûé äåñêðèïòîð ôàéëà: ", hFileRead, "\n\n");
    Comment(sComment);
    //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    // 7. ÔÓÍÊÖÈÈ ×ÒÅÍÈß ÈÇ ÔÀÉËÀ ×ÈÑÅË È ÑÒÐÎÊ.
    //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    sComment = StringConcatenate(sComment, "7.     ×òåíèå ÷èñåë è ñòðîê.\n");
    Comment(sComment);
    //===================================================================================================================================================================
    // 7.1. Ôóíêöèÿ ÷èòàåò èç ôàéëà ëîãè÷åñêîå çíà÷åíèå BOOL (1 áàéò) è âîçâðàùàåò åãî.  ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò FALSE.
    sComment = StringConcatenate(sComment, "7.1.  ×èòàåì èç ôàéëà ëîãè÷åñêîå çíà÷åíèå BOOL.\n");
    Comment(sComment);
    bool bTest = FileReadBoolean(hFileRead);
    sComment = StringConcatenate(sComment, "        Ðåçóëüòàò: ", bTest, " (", abWrite[0], ")\n");
    Comment(sComment);
    if (bTest != abWrite[0]) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 7.2. Ôóíêöèÿ ÷èòàåò èç ôàéëà ÷èñëî òèïà CHAR (1 áàéò) è âîçâðàùàåò åãî.  ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò 0.
    sComment = StringConcatenate(sComment, "7.2.  ×èòàåì èç ôàéëà ÷èñëî òèïà CHAR.\n");
    Comment(sComment);
    char cTest = FileReadChar(hFileRead);
    sComment = StringConcatenate(sComment, "        Ðåçóëüòàò: ", cTest, " (", acWrite[0], ")\n");
    Comment(sComment);
    if (cTest != acWrite[0]) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 7.3. Ôóíêöèÿ ÷èòàåò èç ôàéëà ÷èñëî òèïà UCHAR (1 áàéò) è âîçâðàùàåò åãî.  ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò 0.
    sComment = StringConcatenate(sComment, "7.3.  ×èòàåì èç ôàéëà ÷èñëî òèïà UCHAR.\n");
    Comment(sComment);
    uchar ucTest = FileReadUChar(hFileRead);
    sComment = StringConcatenate(sComment, "        Ðåçóëüòàò: ", ucTest, " (", aucWrite[0], ")\n");
    Comment(sComment);
    if (ucTest != aucWrite[0]) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 7.4. Ôóíêöèÿ ÷èòàåò èç ôàéëà ÷èñëî òèïà SHORT (2 áàéòà) è âîçâðàùàåò åãî.  ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò 0.
    sComment = StringConcatenate(sComment, "7.4.  ×èòàåì èç ôàéëà ÷èñëî òèïà SHORT.\n");
    Comment(sComment);
    short shTest = FileReadShort(hFileRead);
    sComment = StringConcatenate(sComment, "        Ðåçóëüòàò: ", shTest, " (", ashWrite[0], ")\n");
    Comment(sComment);
    if (shTest != ashWrite[0]) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 7.5. Ôóíêöèÿ ÷èòàåò èç ôàéëà ÷èñëî òèïà USHORT (2 áàéòà) è âîçâðàùàåò åãî.  ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò 0.
    sComment = StringConcatenate(sComment, "7.5.  ×èòàåì èç ôàéëà ÷èñëî òèïà USHORT.\n");
    Comment(sComment);
    ushort ushTest = FileReadUShort(hFileRead);
    sComment = StringConcatenate(sComment, "        Ðåçóëüòàò: ", ushTest, " (", aushWrite[0], ")\n");
    Comment(sComment);
    if (ushTest != aushWrite[0]) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 7.6. Ôóíêöèÿ ÷èòàåò èç ôàéëà ÷èñëî òèïà INT (4 áàéòà) è âîçâðàùàåò åãî.  ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò 0.
    sComment = StringConcatenate(sComment, "7.6.  ×èòàåì èç ôàéëà ÷èñëî òèïà INT.\n");
    Comment(sComment);
    int iTest = FileReadInt(hFileRead);
    sComment = StringConcatenate(sComment, "        Ðåçóëüòàò: ", iTest, " (", aiWrite[0], ")\n");
    Comment(sComment);
    if (iTest != aiWrite[0]) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 7.7. Ôóíêöèÿ ÷èòàåò èç ôàéëà ÷èñëî òèïà UINT (4 áàéòà) è âîçâðàùàåò åãî.  ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò 0.
    sComment = StringConcatenate(sComment, "7.7.  ×èòàåì èç ôàéëà ÷èñëî òèïà UINT.\n");
    Comment(sComment);
    uint uiTest = FileReadUInt(hFileRead);
    sComment = StringConcatenate(sComment, "        Ðåçóëüòàò: ", uiTest, " (", auiWrite[0], ")\n");
    Comment(sComment);
    if (uiTest != auiWrite[0]) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 7.8. Ôóíêöèÿ ÷èòàåò èç ôàéëà ÷èñëî òèïà INT64 (8 áàéò) è âîçâðàùàåò åãî.  ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò 0.
    sComment = StringConcatenate(sComment, "7.8.  ×èòàåì èç ôàéëà ÷èñëî òèïà INT64.\n");
    Comment(sComment);
    long lTest = FileReadInt64(hFileRead);
    sComment = StringConcatenate(sComment, "        Ðåçóëüòàò: ", lTest, " (", alWrite[0], ")\n");
    Comment(sComment);
    if (lTest != alWrite[0]) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 7.9. Ôóíêöèÿ ÷èòàåò èç ôàéëà ÷èñëî òèïà UINT64 (8 áàéò) è âîçâðàùàåò åãî.  ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò 0.
    sComment = StringConcatenate(sComment, "7.9.  ×èòàåì èç ôàéëà ÷èñëî òèïà UINT64.\n");
    Comment(sComment);
    ulong ulTest = FileReadUInt64(hFileRead);
    sComment = StringConcatenate(sComment, "        Ðåçóëüòàò: ", ulTest, " (", aulWrite[0], ")\n");
    Comment(sComment);
    if (ulTest != aulWrite[0]) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 7.10. Ôóíêöèÿ ÷èòàåò èç ôàéëà ÷èñëî òèïà FLOAT (4 áàéòà) è âîçâðàùàåò åãî.  ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò 0.
    sComment = StringConcatenate(sComment, "7.10.  ×èòàåì èç ôàéëà ÷èñëî òèïà FLOAT.\n");
    Comment(sComment);
    float fTest = FileReadFlt(hFileRead);
    sComment = StringConcatenate(sComment, "         Ðåçóëüòàò: ", fTest, " (", afWrite[0], ")\n");
    Comment(sComment);
    if (fTest != afWrite[0]) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 7.11. Ôóíêöèÿ ÷èòàåò èç ôàéëà ÷èñëî òèïà DOUBLE (8 áàéò) è âîçâðàùàåò åãî.  ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò 0.
    sComment = StringConcatenate(sComment, "7.11.  ×èòàåì èç ôàéëà ÷èñëî òèïà DOUBLE.\n");
    Comment(sComment);
    double dTest = FileReadDbl(hFileRead);
    sComment = StringConcatenate(sComment, "         Ðåçóëüòàò: ", dTest, " (", adWrite[0], ")\n");
    Comment(sComment);
    if (dTest != adWrite[0]) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 8.3. Ôóíêöèÿ ÷èòàåò èç ôàéëà ìàññèâ ñ äàííûìè òèïà UCHAR (1 áàéò) è âîçâðàùàåò êîëè÷åñòâî ïðî÷èòàííûõ ÿ÷ååê ìàññèâà.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "8.3.   ×èòàåì èç ôàéëà ANSI-ñòðîêó.\n");
    Comment(sComment);
    FileReadUCharArray(hFileRead, szReadAnsi, ArraySize(szReadAnsi), 0, ArraySize(szReadAnsi) - 1);
    sReadUnicode = CharArrayToString(szReadAnsi);
    sComment = StringConcatenate(sComment, "        Ðåçóëüòàò: ", sReadUnicode, " (", sWriteUnicode, ")\n");
    Comment(sComment);
    if (sReadUnicode != sWriteUnicode) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //--------------------------------------------------------------------------------------------------------------------------------------------------------------------
    // 7.12.2. Ôóíêöèÿ ÷èòàåò èç ôàéëà UNICODE-ñòðîêó è âîçâðàùàåò óêàçàòåëü íà íå¸.  ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò NULL.
    sComment = StringConcatenate(sComment, "7.12.2.  ×èòàåì èç ôàéëà UNICODE-ñòðîêó.\n");
    Comment(sComment);
    StringInit(sReadUnicode);
    sReadUnicode = FileReadStringW(hFileRead, StringLen(sWriteUnicode));
    sComment = StringConcatenate(sComment, "            Ðåçóëüòàò: ", sReadUnicode, " (", sWriteUnicode, ")\n\n");
    Comment(sComment);
    if (sReadUnicode != sWriteUnicode) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    // 8. ÔÓÍÊÖÈÈ ×ÒÅÍÈß ÌÀÑÑÈÂÎÂ ÈÇ ÔÀÉËÀ.
    //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    sComment = StringConcatenate(sComment, "8.     ×òåíèå ìàññèâîâ.\n");
    Comment(sComment);
    //===================================================================================================================================================================
    // 8.1. Ôóíêöèÿ ÷èòàåò èç ôàéëà ìàññèâ ñ äàííûìè òèïà BOOL (1 áàéò) è âîçâðàùàåò êîëè÷åñòâî ïðî÷èòàííûõ ÿ÷ååê ìàññèâà.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "8.1.  ×èòàåì èç ôàéëà ìàññèâ ñ äàííûìè òèïà BOOL.\n");
    Comment(sComment);
    ulTest = FileReadBoolArray(hFileRead, abRead, ArraySize(abRead), 0, ArraySize(abRead));
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî ïðî÷èòàííûõ ÿ÷ååê: ", ulTest, " (10)\n");
    Comment(sComment);
    if (ulTest != 10) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    for (i = 0; i < ArraySize(abRead) && i < ArraySize(abWrite); i++) if (abRead[i] != abWrite[i]) Alert(i, "  Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 8.2. Ôóíêöèÿ ÷èòàåò èç ôàéëà ìàññèâ ñ äàííûìè òèïà CHAR (1 áàéò) è âîçâðàùàåò êîëè÷åñòâî ïðî÷èòàííûõ ÿ÷ååê ìàññèâà.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "8.2.  ×èòàåì èç ôàéëà ìàññèâ ñ äàííûìè òèïà CHAR.\n");
    Comment(sComment);
    ulTest = FileReadCharArray(hFileRead, acRead, ArraySize(acRead), 0, ArraySize(acRead));
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî ïðî÷èòàííûõ ÿ÷ååê: ", ulTest, " (10)\n");
    Comment(sComment);
    if (ulTest != 10) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    for (i = 0; i < ArraySize(acRead) && i < ArraySize(acWrite); i++) if (acRead[i] != acWrite[i]) Alert(i, "  Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 8.3. Ôóíêöèÿ ÷èòàåò èç ôàéëà ìàññèâ ñ äàííûìè òèïà UCHAR (1 áàéò) è âîçâðàùàåò êîëè÷åñòâî ïðî÷èòàííûõ ÿ÷ååê ìàññèâà.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "8.3.  ×èòàåì èç ôàéëà ìàññèâ ñ äàííûìè òèïà UCHAR.\n");
    Comment(sComment);
    ulTest = FileReadUCharArray(hFileRead, aucRead, ArraySize(aucRead), 0, ArraySize(aucRead));
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî ïðî÷èòàííûõ ÿ÷ååê: ", ulTest, " (10)\n");
    Comment(sComment);
    if (ulTest != 10) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    for (i = 0; i < ArraySize(aucRead) && i < ArraySize(aucWrite); i++) if (aucRead[i] != aucWrite[i]) Alert(i, "  Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 8.4. Ôóíêöèÿ ÷èòàåò èç ôàéëà ìàññèâ ñ äàííûìè òèïà SHORT (2 áàéòà) è âîçâðàùàåò êîëè÷åñòâî ïðî÷èòàííûõ ÿ÷ååê ìàññèâà.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "8.4.  ×èòàåì èç ôàéëà ìàññèâ ñ äàííûìè òèïà SHORT.\n");
    Comment(sComment);
    ulTest = FileReadShortArray(hFileRead, ashRead, ArraySize(ashRead), 0, ArraySize(ashRead));
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî ïðî÷èòàííûõ ÿ÷ååê: ", ulTest, " (10)\n");
    Comment(sComment);
    if (ulTest != 10) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    for (i = 0; i < ArraySize(ashRead) && i < ArraySize(ashWrite); i++) if (ashRead[i] != ashWrite[i]) Alert(i, "  Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 8.5. Ôóíêöèÿ ÷èòàåò èç ôàéëà ìàññèâ ñ äàííûìè òèïà USHORT (2 áàéòà) è âîçâðàùàåò êîëè÷åñòâî ïðî÷èòàííûõ ÿ÷ååê ìàññèâà.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "8.5.  ×èòàåì èç ôàéëà ìàññèâ ñ äàííûìè òèïà USHORT.\n");
    Comment(sComment);
    ulTest = FileReadUShortArray(hFileRead, aushRead, ArraySize(aushRead), 0, ArraySize(aushRead));
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî ïðî÷èòàííûõ ÿ÷ååê: ", ulTest, " (10)\n");
    Comment(sComment);
    if (ulTest != 10) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    for (i = 0; i < ArraySize(aushRead) && i < ArraySize(aushWrite); i++) if (aushRead[i] != aushWrite[i]) Alert(i, "  Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 8.6. Ôóíêöèÿ ÷èòàåò èç ôàéëà ìàññèâ ñ äàííûìè òèïà INT (4 áàéòà) è âîçâðàùàåò êîëè÷åñòâî ïðî÷èòàííûõ ÿ÷ååê ìàññèâà.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "8.6.  ×èòàåì èç ôàéëà ìàññèâ ñ äàííûìè òèïà INT.\n");
    Comment(sComment);
    ulTest = FileReadIntArray(hFileRead, aiRead, ArraySize(aiRead), 0, ArraySize(aiRead));
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî ïðî÷èòàííûõ ÿ÷ååê: ", ulTest, " (10)\n");
    Comment(sComment);
    if (ulTest != 10) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    for (i = 0; i < ArraySize(aiRead) && i < ArraySize(aiWrite); i++) if (aiRead[i] != aiWrite[i]) Alert(i, "  Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 8.7. Ôóíêöèÿ ÷èòàåò èç ôàéëà ìàññèâ ñ äàííûìè òèïà UINT (4 áàéòà) è âîçâðàùàåò êîëè÷åñòâî ïðî÷èòàííûõ ÿ÷ååê ìàññèâà.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "8.7.  ×èòàåì èç ôàéëà ìàññèâ ñ äàííûìè òèïà UINT.\n");
    Comment(sComment);
    ulTest = FileReadUIntArray(hFileRead, auiRead, ArraySize(auiRead), 0, ArraySize(auiRead));
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî ïðî÷èòàííûõ ÿ÷ååê: ", ulTest, " (10)\n");
    Comment(sComment);
    if (ulTest != 10) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    for (i = 0; i < ArraySize(auiRead) && i < ArraySize(auiWrite); i++) if (auiRead[i] != auiWrite[i]) Alert(i, "  Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 8.8. Ôóíêöèÿ ÷èòàåò èç ôàéëà ìàññèâ ñ äàííûìè òèïà INT64 (8 áàéò) è âîçâðàùàåò êîëè÷åñòâî ïðî÷èòàííûõ ÿ÷ååê ìàññèâà.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "8.8.  ×èòàåì èç ôàéëà ìàññèâ ñ äàííûìè òèïà INT64.\n");
    Comment(sComment);
    ulTest = FileReadLongArray(hFileRead, alRead, ArraySize(alRead), 0, ArraySize(alRead));
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî ïðî÷èòàííûõ ÿ÷ååê: ", ulTest, " (10)\n");
    Comment(sComment);
    if (ulTest != 10) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    for (i = 0; i < ArraySize(alRead) && i < ArraySize(alWrite); i++) if (alRead[i] != alWrite[i]) Alert(i, "  Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 8.9. Ôóíêöèÿ ÷èòàåò èç ôàéëà ìàññèâ ñ äàííûìè òèïà UINT64 (8 áàéò) è âîçâðàùàåò êîëè÷åñòâî ïðî÷èòàííûõ ÿ÷ååê ìàññèâà.
    //       ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "8.9.  ×èòàåì èç ôàéëà ìàññèâ ñ äàííûìè òèïà UINT64.\n");
    Comment(sComment);
    ulTest = FileReadULongArray(hFileRead, aulRead, ArraySize(aulRead), 0, ArraySize(aulRead));
    sComment = StringConcatenate(sComment, "        Êîëè÷åñòâî ïðî÷èòàííûõ ÿ÷ååê: ", ulTest, " (10)\n");
    Comment(sComment);
    if (ulTest != 10) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    for (i = 0; i < ArraySize(aulRead) && i < ArraySize(aulWrite); i++) if (aulRead[i] != aulWrite[i]) Alert(i, "  Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 8.10. Ôóíêöèÿ ÷èòàåò èç ôàéëà ìàññèâ ñ äàííûìè òèïà FLOAT (4 áàéòà) è âîçâðàùàåò êîëè÷åñòâî ïðî÷èòàííûõ ÿ÷ååê ìàññèâà.
    //        ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "8.10.  ×èòàåì èç ôàéëà ìàññèâ ñ äàííûìè òèïà FLOAT.\n");
    Comment(sComment);
    ulTest = FileReadFloatArray(hFileRead, afRead, ArraySize(afRead), 0, ArraySize(afRead));
    sComment = StringConcatenate(sComment, "         Êîëè÷åñòâî ïðî÷èòàííûõ ÿ÷ååê: ", ulTest, " (10)\n");
    Comment(sComment);
    if (ulTest != 10) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    for (i = 0; i < ArraySize(afRead) && i < ArraySize(afWrite); i++) if (afRead[i] != afWrite[i]) Alert(i, "  Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 8.11. Ôóíêöèÿ ÷èòàåò èç ôàéëà ìàññèâ ñ äàííûìè òèïà DOUBLE (8 áàéò) è âîçâðàùàåò êîëè÷åñòâî ïðî÷èòàííûõ ÿ÷ååê ìàññèâà.
    //        ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "8.11.  ×èòàåì èç ôàéëà ìàññèâ ñ äàííûìè òèïà DOUBLE.\n");
    Comment(sComment);
    ulTest = FileReadDoubleArray(hFileRead, adRead, ArraySize(adRead), 0, ArraySize(adRead));
    sComment = StringConcatenate(sComment, "         Êîëè÷åñòâî ïðî÷èòàííûõ ÿ÷ååê: ", ulTest, " (10)\n");
    Comment(sComment);
    if (ulTest != 10) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    for (i = 0; i < ArraySize(adRead) && i < ArraySize(adWrite); i++) if (adRead[i] != adWrite[i]) Alert(i, "  Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 8.12.2. Ôóíêöèÿ ÷èòàåò èç ôàéëà ìàññèâ MQLSTRW-ñòðîê è âîçâðàùàåò êîëè÷åñòâî ïðî÷èòàííûõ ÿ÷ååê ìàññèâà.
    //          ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò ULONG_MAX.
    sComment = StringConcatenate(sComment, "8.12.2. ×èòàåì èç ôàéëà ìàññèâ MQLSTRW-ñòðîê.\n");
    Comment(sComment);
    ulTest = FileReadStrArrayMW(hFileRead, asRead, ArraySize(asRead), 0, ArraySize(asRead));
    sComment = StringConcatenate(sComment, "         Êîëè÷åñòâî ïðî÷èòàííûõ ÿ÷ååê: ", ulTest, " (10)\n");
    Comment(sComment);
    if (ulTest != 10) Alert("Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    for (i = 0; i < ArraySize(asRead) && i < ArraySize(asWrite); i++) if (asRead[i] != asWrite[i]) Alert(i, "  Îøèáêà â \"", __FILE__, "\"; Ñòðîêà: ", __LINE__);
    //===================================================================================================================================================================
    // 2.2. Ôóíêöèÿ çàêðûâàåò ñèñòåìíûé äåñêðèïòîð ôàéëà.
    sComment = StringConcatenate(sComment, "2.2.   Çàêðûâàåì ñèñòåìíûé äåñêðèïòîð (", hFileRead, ").\n\n");
    Comment(sComment);
    FileCloseHandle(hFileRead);
    //===================================================================================================================================================================
   }
 }
//ÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆ

Comments