//+------------------------------------------------------------------+
//| 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