MT4 파일 기능 교체.

 

안녕 여러분,

많은 사람들이 파일 처리 기능에 대해 저와 메타 인용 포럼에 질문했습니다.

MT4는 그런 기능에 버그가 많다고 생각합니다.

1- 백 테스팅 에서 작동하지 않습니다.

2- "MetaTrader 4\experts\files" 경로 외부에 쓰지 않습니다.

오늘 저는 Visual C++를 열고 MT4용 dll을 처리하는 파일을 작성했습니다. 여러분이 그것을 즐기시기 바랍니다. 그리고 그 소스 코드가 무엇인지 알려주십시오. .

설정:

1- "MetaTrader 4\experts\libraries" 경로에 " mtguru1.dl l"의 압축을 풉니다.

2- "MetaTrader 4\experts\indicators" 경로에 " FilesDemo.mq4 "를 추출하고 컴파일합니다.

3- " gFiles.mqh "를 "MetaTrader 4\experts\include" 에 추출합니다.

4- 표시기에서 FilesDemo 로드 - "DLL 가져오기 허용" 을 활성화하는 것을 잊지 마십시오.

5- 즐기십시오.

파일:
mtguru1.zip  95 kb
 

피드백

안녕 여러분,

피드백 부탁드립니다 ?

 

글쎄, 나는 그것을 테스트하지 않았다. 하지만 작동한다면 ..굉장합니다!!

데모 .mq4 파일을 확인 했는데 너무 간단하고 우아합니다. 잘 했어.

내가 가진 유일한 문제는 새 라인에 대해 무엇을 해야 하는지입니다.

gFile을 사용하여 새 줄을 작성하려면 어떻게 해야 합니까?

 

감사합니다!

fivewhy:
글쎄, 나는 그것을 테스트하지 않았다. 하지만 작동한다면 ..굉장합니다!!

데모 .mq4 파일을 확인했는데 너무 간단하고 우아합니다. 잘 했어.

내가 가진 유일한 문제는 새 라인에 대해 무엇을 해야 하는지입니다.

gFile을 사용하여 새 줄을 작성하려면 어떻게 해야 합니까?

다섯째,

귀하의 의견에 진심으로 감사드립니다.

새 라인 인쇄 문제는 저에게 약간의 작업이 필요하다고 생각합니다. 알려주셔서 감사합니다.

 

잘했어요 , 그러나 파일 기능 (및 기타 많은 기능)은 Windows API dll에서 직접 사용할 수 있습니다.

파일 복사 기능 가져오기의 예:

#가져오기 "Kernel32.dll"

bool CopyFileA(문자열 source_file, 문자열 destination_file, bool if_exist);

DLL을 사용하면 SQL 데이터베이스 액세스 등과 같은 많은 작업을 수행할 수 있습니다.

 

kernel32.dll(및 기타 Windows .dll)에서 사용 가능한 모든 기능 목록은 어디에서 찾을 수 있습니까?

편집: 찾았습니다. 첨부 참조.

파일:
kernel32.txt  306 kb
 

그렇긴 한데?

Beluck:
잘했어요 , 그러나 파일 기능(및 기타 많은 기능)은 Windows API dll에서 직접 사용할 수 있습니다.

파일 복사 기능 가져오기의 예:

#가져오기 "Kernel32.dll"

bool CopyFileA(문자열 source_file, 문자열 destination_file, bool if_exist);

DLL을 사용하면 SQL 데이터베이스 액세스 등과 같은 많은 작업을 수행할 수 있습니다.

벨럭,

좋아요 하지만 .mql 데모가 MQL4에서 kernel32 함수 CreateFile , OpenFile , WriteFileReadFile 을 사용하는 방법을 보여줍니다.

HANDLE CreateFile(

LPCTSTR lpFileName,

DWORD dwDesiredAccess,

DWORD dwShareMode,

LPSECURITY_ATTRIBUTES lpSecurityAttributes,

DWORD dwCreationDisposition,

DWORD dwFlagsAndAttributes,

HANDLE hTemplateFile

);

HFILE OpenFile(

LPCSTR lpFileName,

LPOFSTRUCT lpReOpenBuff,

UINT uStyle

);

BOOL WriteFile(

HANDLE hFile,

LPCVOID lpBuffer,

DWORD nNumberOfBytesToWrite,

LPDWORD lpNumberOfBytesWritten,

LPOVERLAPPED lpOverlapped

);

BOOL ReadFile(

HANDLE hFile,

LPVOID lpBuffer,

DWORD nNumberOfBytesToRead,

LPDWORD lpNumberOfBytesRead,

LPOVERLAPPED lpOverlapped

);
 

테드

mtguru1.zip의 일부가 아닌 alerts.mqh, FilesDemo를 실행할 수 없습니까? 미리 감사드립니다.

 

gFiles.mqh

sx ted:
mtguru1.zip의 일부가 아닌 alerts.mqh, FilesDemo를 실행할 수 없습니까? 미리 감사드립니다.

섹스 테드,

죄송합니다. " gFiles.mqh "를 의미했습니다.

FilesDemo를 실행하려면:

1- " mtguru1.dll "을 " MetaTrader 4\experts\libraries " 경로로 추출합니다.

2- " MetaTrader 4\experts\indicators " 경로에 " FilesDemo.mq4 "를 추출하고 컴파일합니다.

3- " gFiles.mqh "를 " MetaTrader 4\experts\include "로 추출합니다.

4- 표시기에서 FilesDemo 로드 - " DLL 가져오기 허용 "을 활성화하는 것을 잊지 마십시오.

 

테드

CodersGuru, 감사합니다. FileTell()과 동등한 기능을 가지고 있습니다.

 

업데이트되었습니다!

sx ted:
CodersGuru, 감사합니다. FileTell()과 동등한 기능을 가지고 있습니다.

섹스 테드,

프로그램을 업데이트했습니다. 이제 다음 기능이 포함됩니다.

int gFileOpen (문자열 file_name, int 모드);

bool gFileWrite (int 핸들, 문자열 데이터);

bool gFileClose (int 핸들);

문자열 gFileRead (int 핸들, int 길이=0);

void gFileSeek (int 핸들, int 오프셋, int 모드);

bool gFileDelete (문자열 파일 이름);

int gFileSize (int 핸들);

int gFileTell (int 핸들);

bool gFileFlush (int 핸들);

bool gFileCopy (문자열 소스, 문자열 거리, bool IfExists);

bool gFileMove (문자열 소스, 문자열 거리);

즐기시기 바랍니다.

파일:
mtguru1.zip  88 kb