- FileSelectDialog
- FileFindFirst
- FileFindNext
- FileFindClose
- FileIsExist
- FileOpen
- FileClose
- FileCopy
- FileDelete
- FileMove
- FileFlush
- FileGetInteger
- FileIsEnding
- FileIsLineEnding
- FileReadArray
- FileReadBool
- FileReadDatetime
- FileReadDouble
- FileReadFloat
- FileReadInteger
- FileReadLong
- FileReadNumber
- FileReadString
- FileReadStruct
- FileSeek
- FileSize
- FileTell
- FileWrite
- FileWriteArray
- FileWriteDouble
- FileWriteFloat
- FileWriteInteger
- FileWriteLong
- FileWriteString
- FileWriteStruct
- FileLoad
- FileSave
- FolderCreate
- FolderDelete
- FolderClean
FileOpen
이 함수는 지정된 이름과 플래그를 가진 파일을 엽니다.
int FileOpen(
|
Parameters
file_name
[in] 파일 이름에는 하위 폴더가 포함될 수 있음. 파일을 쓰기 위해 연 경우 이러한 하위 폴더가 없으면 하위 폴더가 생성됩니다.
open_flags
[in] 파일의 작동 모드를 결정하는 플래그 조합. 플래그는 다음과 같이 정의됩니다:
FILE_READ 파일은 읽기를 위해 열립니다
FILE_WRITE 파일은 쓰기를 위해 열립니다
FILE_BIN 이진 읽기-쓰기 모드 (문자열에서 문자열로의 변환 없음)
csv 형식의 FILE_CSV 파일(기록된 모든 항목은 UNICODE 또는 ANSI 형식의 문자열로 변환되며 구분 기호로 구분됨)
FILE_TXT 단순 텍스트 파일(csv와 동일하지만 구분 기호는 고려되지 않음)
ANSI 유형의 FILE_ANSI 라인(싱글바이트 기호)
UNICODE 유형의 FILE_UNICODE 줄(더블바이트 문자)
FILE_SHARE_READ 여러 프로그램의 공유 읽기
FILE_SHARE_WRITE 여러 프로그램의 공유 쓰기
FILE_COMMON 모든 클라이언트 터미널의 공유 폴더에 있는 파일 위치 \Terminal\Common\Files
delimiter='\t'
[in] txt 또는 csv 파일의 구분자로 사용할 값. csv-파일 구분 기호를 지정하지 않으면 기본적으로 탭으로 설정됩니다. txt 파일 구분 기호를 지정하지 않으면 구분 기호가 사용되지 않습니다. 구분 기호가 0으로 설정되어 있으면 구분 기호가 사용되지 않습니다.
codepage=CP_ACP
[in] 코드 페이지 값. 가장 많이 사용되는 코드 페이지는 적절한 상수를 제공합니다.
반환 값
파일이 성공적으로 열리면 함수는 파일 핸들을 반환하고 이 핸들을 파일 데이터에 액세스하는 데 사용합니다. 실패한 경우 INVALID_HANDLE를 반환합니다.
참고
보안상의 이유로 파일 작업은 MQL5 언어로 엄격하게 제어됩니다. MQL5를 사용하여 파일 작업을 수행하는 파일은 파일 샌드박스 외부에 있을 수 없습니다.
파일을 특정 인코딩으로 읽어야 하는 경우 FILE_ANSI 플래그를 설정해야 합니다 (코드 페이지 값이 지정된 코드 페이지 매개 변수가 지정됨). 지정된 FILE_ANSI 플래그가 없는 경우 텍스트 파일은 변환 없이 Unicode로 읽힙니다.
파일이 하위 폴더 MQL5\files (또는 testing_agent_directory\MQL5\files)에 있는 클라이언트 터미널 폴더에 열립니다. 플래그 사이에 FILE_COMMON가 지정된 경우 파일은 모든 MetaTrader 5 클라이언트 터미널의 공유 폴더에 열립니다.
명명된 파이프는 다음 규칙에 따라 열 수 있습니다:
- 파이프 이름은 다음과 같은 모습을 가져야 하는 문자열입니다: "\\servername\pipe\pipename", 여기서 servername은 네트워크 서버 이름이고 pipename은 파이프 이름입니다. 파이프가 동일한 시스템에서 사용되는 경우 서버 이름을 생략할 수 있지만 포인트 대신 "\\.\pipe\pipename"을 삽입해야 합니다. 파이프를 연결하려는 클라이언트는 파이프 이름을 알고 있어야 합니다.
- FileFlush() 및 FileSeek()는 파이프에서 읽고 쓰는 순차 작업 사이에 파일 시작 부분에 호출되어야 합니다.
특수 기호 '\'는 표시된 문자열에 사용됩니다. 따라서 MQL5 애플리케이션에서 이름을 쓸 때는 '\'를 두번씩 사용해야 합니다. 이는 위의 예제가 코드에서 "\\\\servername\\pipe\\pipename"으로 표시되어야 함을 의미합니다.
명명된 파이프로 작업하는 방법에 대한 자세한 내용은 "DLL을 사용하지 않고 명명된 파이프를 사용하여 MetaTrader 5와 통신" 문서를 참조하십시오.
예:
//+------------------------------------------------------------------+
|
더 보기
Use of a Codepage, FileFindFirst, FolderCreate, File opening flags