????????????? ???????? ?? ?????????? ?????? ????????????? ???????? ?? ?????????? ??????

 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

????????? ????????? ? ???????? ?????? ? ?? ???????

 
Начать новую тему   Ответить на тему    Список форумов ????????????? ???????? ?? ?????????? ?????? -> ???????????????? ? MQL4
Предыдущая тема :: Следующая тема  
Автор Сообщение
KimIV
Admin


Зарегистрирован: 24.01.2006
Сообщения: 958
Откуда: ??????

СообщениеДобавлено: Пн Июл 09, 2007 8:11 am    Заголовок сообщения: ????????? ????????? ? ???????? ?????? ? ?? ??????? Ответить с цитатой

???????? ? ???? ???????? ????????????? ????????????????? ??????????? ????? ?????????? MQL4. ???????? ?? ???? ?????? ????? WinAPI.CreateFileA(), ReadFile() ? ????? ? WriteFile() ?? ??????, ?????? CreateFileA() ?????????? ? ?????? FILE_SHARE_READ, ? ? ???????? ?????? ?????????? ????????? ????????? ? ??? ????. ?? ??? ?????????, ? ????????????? ????????? ????????? ? ???????? ?????? ???? ???? ????????? ?????, ???? ?? ??????? ? ????????? ???????? ??????.
_________________
??? ????? ? ???? ??????? ????? ? ??????? ???????? ???, ? ??????? ? ???? ?????? ? ??????? ???????? ????...


Последний раз редактировалось: KimIV (Пн Июл 09, 2007 8:31 am), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора Yahoo Messenger
KimIV
Admin


Зарегистрирован: 24.01.2006
Сообщения: 958
Откуда: ??????

СообщениеДобавлено: Пн Июл 09, 2007 8:20 am    Заголовок сообщения: Ответить с цитатой

???? ????????? ? ???? ??????? ??? ???????????? ??????? ????????????????? ??????????? ?????. ??? ???? ???????????, ??? ? ??????? ??? ???????????????? ???????????? ?????. ??? ???? ? ??????? ????? ???????????, ??? ??????? ????-???????? ? ?????? ??? ?????? ?? ???????????, ?? ???? ???????? ????? ???? ??????? ??????? ??????????? ? ???? ??????. ??? ??? ???? ??????-?????????:
Код:
#import "kernel32.dll"
  bool CloseHandle                // ???????? ???????
       ( int hObject );                // ????? ???????
  int CreateFileA                 // ???????? ???????? ???????
      ( string lpFileName,             // ?????? ???? ??????? ? ???????
        int    dwDesiredAccess,        // ??? ??????? ? ???????
        int    dwShareMode,            // ????? ?????? ???????
        int    lpSecurityAttributes,   // ????????? ????????????
        int    dwCreationDisposition,  // ????????? ????????
        int    dwFlagsAndAttributes,   // ????? ??????????
        int    hTemplateFile );        //
  bool ReadFile                   // ?????? ?????? ?? ?????
       ( int    hFile,                 // handle of file to read
         string lpBuffer,              // address of buffer that receives data 
         int    nNumberOfBytesToRead,  // number of bytes to read
         int&   lpNumberOfBytesRead[], // address of number of bytes read
         int    lpOverlapped );        // address of structure for data
  bool WriteFile                  // ?????? ?????? ? ????
       ( int    hFile,                      // handle to file to write to
         string lpBuffer,                   // pointer to data to write to file
         int    nNumberOfBytesToWrite,      // number of bytes to write
         int&   lpNumberOfBytesWritten[],   // pointer to number of bytes written
         int    lpOverlapped );             // pointer to structure needed for overlapped I/O
#import

// ??? ??????? ? ???????
#define GENERIC_READ    0x80000000
#define GENERIC_WRITE   0x40000000
#define GENERIC_EXECUTE 0x20000000
#define GENERIC_ALL     0x10000000
// ????? ?????? ???????
#define FILE_SHARE_READ   0x00000001
#define FILE_SHARE_WRITE  0x00000002
#define FILE_SHARE_DELETE 0x00000004
// ????????? ????????
#define CREATE_NEW        1
#define CREATE_ALWAYS     2
#define OPEN_EXISTING     3
#define OPEN_ALWAYS       4
#define TRUNCATE_EXISTING 5

void start() {
  string nf1="C:\Program Files\MetaTrader 4\experts\files\Data.txt";
  string nf2="CopyData.txt";

  nf2=TerminalPath()+"\experts\files\\"+nf2;

  FileCopyNonLocking(nf1, nf2);
}

//+----------------------------------------------------------------------------+
//|  ??????????? ????? ??? ??? ?????????? ?? ?????? ??????                     |
//|  ?????????:                                                                |
//|    nf1 - ??? ????? ?????????                                               |
//|    nf2 - ??? ????? ??????????                                              |
//+----------------------------------------------------------------------------+
bool FileCopyNonLocking(string nf1, string nf2) {
  bool   ret=True;
  int    h1, h2, nBytesRead[1]={1};
  string Buffer="_";

  h1=CreateFileA(nf1, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, 128, NULL);
  h2=CreateFileA(nf2, GENERIC_WRITE, FILE_SHARE_WRITE, 0, OPEN_ALWAYS, 128, NULL);
  if (h1>0 && h2>0) {
    while (nBytesRead[0]>0) {
      ReadFile(h1, Buffer, 1, nBytesRead, NULL);
      WriteFile(h2, Buffer, nBytesRead[0], nBytesRead, NULL);
    }
  } else ret=False;

  CloseHandle(h1);
  CloseHandle(h2);
  return(ret);
}

_________________
??? ????? ? ???? ??????? ????? ? ??????? ???????? ???, ? ??????? ? ???? ?????? ? ??????? ???????? ????...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора Yahoo Messenger
KimIV
Admin


Зарегистрирован: 24.01.2006
Сообщения: 958
Откуда: ??????

СообщениеДобавлено: Пн Июл 09, 2007 8:25 am    Заголовок сообщения: Ответить с цитатой

?? ????????:
- ?????? testFileCopyNonLocking.mq4 (???????? ? ????? ..\experts\scripts\)
- ???? ? ????????? ??????? Data.txt (???????? ? ????? ..\experts\files\)

_________________
??? ????? ? ???? ??????? ????? ? ??????? ???????? ???, ? ??????? ? ???? ?????? ? ??????? ???????? ????...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора Yahoo Messenger
KimIV
Admin


Зарегистрирован: 24.01.2006
Сообщения: 958
Откуда: ??????

СообщениеДобавлено: Пн Июл 09, 2007 9:48 am    Заголовок сообщения: Ответить с цитатой

?????? ????????? ?? ????:

?????? ?????? ????????? ? ?????????:
Код:
int h1, h2

????????? ????????? ???????? 1 ????. ??? ????? ?????? ??????. ???????????????? ? ?????? ??????????.
Код:
string Buffer="_";

????? ???? ???????? ???? ??????: ????????? ? ?????? ?????? ?????? ? ????????? ? ?????? ????? ??????.
Код:
h1=CreateFileA(nf1, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, 128, NULL);
h2=CreateFileA(nf2, GENERIC_WRITE, FILE_SHARE_WRITE, 0, OPEN_ALWAYS, 128, NULL);

???? ?????? ????? ?????? ?????????????,
Код:
if (h1>0 && h2>0)

?? ???????? ???? ?????? ? ?????? ??????? ?? ?????? ????? ????? ????? Buffer.
Код:
while (nBytesRead[0]>0) {
  ReadFile(h1, Buffer, 1, nBytesRead, NULL);
  WriteFile(h2, Buffer, nBytesRead[0], nBytesRead, NULL);
}

? ????? ??????? ??? ????? ???????????.
Код:
CloseHandle(h1);
CloseHandle(h2);

???? ????????? ?????? testFileCopyNonLocking, ?? ??????????? ??? ?????? ????? ???? CopyData.txt - ?????? ? ?????? ????? ????? Data.txt

_________________
??? ????? ? ???? ??????? ????? ? ??????? ???????? ???, ? ??????? ? ???? ?????? ? ??????? ???????? ????...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора Yahoo Messenger
KimIV
Admin


Зарегистрирован: 24.01.2006
Сообщения: 958
Откуда: ??????

СообщениеДобавлено: Пн Июл 09, 2007 10:18 am    Заголовок сообщения: Ответить с цитатой

? ????????????????? ??????? FileCopyNonLocking() ??? ????????????? ????????????? ?????? ?????????. ???????? ?? ???! ?? ????????? ?????? ???????????? ???????? ? ????????????? ?????? ?????? ???????????. ???? while ??????????? ??????? ???, ??????? ???? ?????????? ? ?????-?????????. ????????? ?????????? ?????????????? ???????? ????? ??????????? ??????? ?????? Buffer.

?? ??????? ?????? ? ?????? ????????, ??????????? ????????? ???????? ?????? ??????? FileCopyNonLocking():
Код:
void start() {
  int    i, t=GetTickCount();
  string nf1="C:\Program Files\MetaTrader 4\experts\files\Data.txt";
  string nf2="CopyData.txt";

  nf2=TerminalPath()+"\experts\files\\"+nf2;
  for (i=0; i<1000; i++) FileCopyNonLocking(nf1, nf2);
  Print("????? ??????????: ",GetTickCount()-t," ??");
}


? ?????? ?????? ??????? start() ????????? ???????? ??????? GetTickCount(), ??????? ?????????? ?????????? ???????????, ????????? ? ??????? ?????? ???????.
Код:
t=GetTickCount();

??????? FileCopyNonLocking() ???????? 1000 ???
Код:
for (i=0; i<1000; i++) FileCopyNonLocking(nf1, nf2);

? ??????? ????? ??????????
Код:
Print("????? ??????????: ",GetTickCount()-t," ??");


????? ?????????? ??????? ??????? testFileCopyNonLocking ???? ????????? ??????????: 10094 ??, 9484 ??, 9469 ??, 9860 ??, 9609 ??. ?????, ????? ?????? ??????????.

? ?????? ?????????? ??????.

_________________
??? ????? ? ???? ??????? ????? ? ??????? ???????? ???, ? ??????? ? ???? ?????? ? ??????? ???????? ????...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора Yahoo Messenger
KimIV
Admin


Зарегистрирован: 24.01.2006
Сообщения: 958
Откуда: ??????

СообщениеДобавлено: Пн Июл 09, 2007 10:28 am    Заголовок сообщения: Ответить с цитатой

??????????? ?????? ?????? ? ??? ????:
Код:
string Buffer="_-";
...
ReadFile(h1, Buffer, 2, nBytesRead, NULL);


????????? ?????? testFileCopyNonLocking ????????? ??? ? ???????? ????????? ??????????: 4828, 4812, 4891, 4734, 4813.

??????????? ?????? ?????? ? ?????? ????:
Код:
string Buffer="_-_-";
...
ReadFile(h1, Buffer, 4, nBytesRead, NULL);


????? ??????????: 2437, 2500, 2516, 2531, 2438.

????????? ?? ????. ?? ??????? ??? ????????????? ?????? ??????, ?? ??????? ?? ??? ????????????? ???????? ??????????? ?????.

_________________
??? ????? ? ???? ??????? ????? ? ??????? ???????? ???, ? ??????? ? ???? ?????? ? ??????? ???????? ????...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора Yahoo Messenger
KimIV
Admin


Зарегистрирован: 24.01.2006
Сообщения: 958
Откуда: ??????

СообщениеДобавлено: Пн Июл 09, 2007 10:48 am    Заголовок сообщения: Ответить с цитатой

????? ? ??? - ??? ????????? ?????????. ?????? ??????? ?? MQL4.

????????? ????????? ???????????? ????? ?????????????????? ???????? ???? ASCII, ??????????? ? ??????? ???????: "Character constant".

????????? ????????? - ??? ?????? ????????, ??????????? ? ???????. ??? ????? ??? string. ???? ?????????? ?????? ? ?????? ??????? ??????? ("), ?? ????? ??? ???? ????????? ?????? ???????? ????? ????? (\). ? ?????? ????? ???? ??????? ????? ??????????? ?????????? ?????????, ????? ???????? ????? ?????? ???????? ????? ????? (\). ????? ????????? ????????? - ?? 0 ?? 255 ????????. ???? ????? ????????? ????????? ??????????? ????????????, ?????? ??????? ?????? ?????????????, ? ?????????? ?????? ??????????????? ??????????????.


????, ???????????? ?????? ??????, ??????? ?? ????? ????????????, ?????????? 255 ???????? ??? 255 ????. ???????????????? ?????? 255-??? ????????? ????? ????????. ? ??? ????????????? ????? ?? ????????. ???? ? ???, ??? ??? ???????? ??????? ReadFile ?????? ? ???????? ?????????, ????? ??? ?????? ????? ?????-?? ??????, ?? ???? ??? ???? ?????? ???? ???????? ??????. ???? ????? ?? ???????, ?? ??-??????, ??????? ???? ????????? ??????? ?????, ? ????? ?? ????? ?????? ????????????, ? ?? ??????, ?????? ?????? ??4.

_________________
??? ????? ? ???? ??????? ????? ? ??????? ???????? ???, ? ??????? ? ???? ?????? ? ??????? ???????? ????...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора Yahoo Messenger
KimIV
Admin


Зарегистрирован: 24.01.2006
Сообщения: 958
Откуда: ??????

СообщениеДобавлено: Пн Июл 09, 2007 10:57 am    Заголовок сообщения: Ответить с цитатой

????? ??? ?????????????? ????????????? ????????? ????????? ??????? ??? ????? ??????????, ?, ??? ??? ????????, ???????? ???????????? ???????:
Код:
string Buffer="";
for (int i=0; i<25; i++) Buffer=Buffer+"1234567890";
...
ReadFile(h1, Buffer, 250, nBytesRead, NULL);


???????? ?????? testFileCopyNonLocking ? ???????????? ?????????? ????? CopyData.txt:
12345678901234567890... ...1234567890
?? ???? ???? CopyData.txt ???????? ?? ??, ??? ?????????? ? ????? Data.txt, ? ??????? ?????????????? ????????????? ??????.

???? ?????? ??????:
Код:
for (int i=0; i<25; i++) Buffer=Buffer+"1234567890";

? ???????????????? ????? ? ??????:
Код:
string Buffer="1234567890...1234567890";

(???? "1234567890" ???????? 25 ???, ????? ????? ?????? ????????? ????????? Buffer ????????? 250 ????????), ?? ??? ????? ??.

?????????? ?????? ????????? ??????.
????????? ?????????, ???????????? ? ???????? ?????? ? ???????? WinAPI, ?????? ???????????????? ?????????? ?????????? ????????.

??????????, ? ????? ??????? ?? ?????????? ????????????? ????????? ????????, ??????? ???? ?????? ?? ?????? ????????. ? ???? ????????? ????????? ?? ?????????? ????????, ?? ??? ??? ????????? ?????? ?? ?????? ???????. ?? ????, ??? ??????????, ?????????????? ??????. ???? ????????? ?????????? ???????????? ?? ?????????? ?????????? ??????. ? ????? ????????? (? ????? ????? ?? ????, ?????? ???????????) ?????? ???? ? ????? ????????? ??????.

????? ????????? ??? ????? ??????? ????????????? ????????? ?????????:
Код:
string Buffer="12345678901234567890";

????????, ?:
Код:
string Buffer="1234567890"+"1234567890";

?? ????????.

???????? ??, ????? ??? ???????? ? ??? ?? ?????...

_________________
??? ????? ? ???? ??????? ????? ? ??????? ???????? ???, ? ??????? ? ???? ?????? ? ??????? ???????? ????...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора Yahoo Messenger
?????????



Зарегистрирован: 17.12.2011
Сообщения: 10
Откуда: ????????

СообщениеДобавлено: Ср Апр 04, 2012 10:59 pm    Заголовок сообщения: Ответить с цитатой

????? ?????? ????.
?? ???? ??? ????? ???????, ? ?????, ??? ? ??????? ?????????? kernel32.dll ????? ?????????? ??? ?????????? ????? ? ?????? ????... ????????? !!! ??? ????????? ???? ??????... ???? ??? ????, ?? ???????? ?? ??????, ?????????? ?????? ???????? (???????? ?????????? ????? ???/??? ?????????? ????), ??, ??? ?? ???????? ????? ?????? ? ? ???? "????????", ??? ????? ??????????? ???????????? ???? ???? ? ??? ???? ??????????? ????????? ?????? ????? ?????? ? ???????? ?? ? ???? "????????" ?
??? ??? ??????.. (? ????????? ??????????? ? ??? ?? ?? ??????? ?????)...
bool ReadFile....
int& lpNumberOfBytesRead[], // address of number of bytes read
int lpOverlapped ); // address of structure for data
?? ???????? ?? ????? ?? ?? ??? ?????????? ??????? ????? ?
????, ?????????? ???????? ????????? ?? ?????? ? ????? ?? ??????? ?... ?????? ???? ? ?????? ????? ????? ??.. ?
???? ???.. ?? ???? ??? ??????????? ?????? ?????????? ?????? ?? ????? ????????? ????????????? ???????, ?? ????? ????, ? ?????????? kernel32.dll ???? ?????? ???????, ??????? ????????? ?????????????? ??? ?? ?? ??????? ????????? ????? ?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов ????????????? ???????? ?? ?????????? ?????? -> ???????????????? ? MQL4 Часовой пояс: GMT + 5
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять вложения в этом форуме
Вы не можете просматривать вложения в этом форуме
Рейтинг@Mail.ru


Powered by phpBB © 2001, 2005 phpBB Group