새 줄에 파일 쓰기 - 페이지 6

 
Aleksei Stepanenko:
거기, Sergey는 여러 전문가 고문을 가지고 있으며 여러 라인이 있으므로 어레이가 있습니다. 그래서 모든 것이 추하게 보입니다. Maxim Kuznetsov는 SQL을 제안했는데, 이는 이러한 Expert Advisor가 서로 통신하는 데 적합합니다.

그러나 라인은 한 번에 하나씩 읽고 원하는 라인이 어떻게 든 선택됩니다. 그러면 어레이가 필요하지 않습니다.

나도 이것에 대해 이야기했지만 mql4는 SQLite를 지원 하지 않습니다

 

라이브러리를 포함시켰습니까? 아니면 여기가 아니야, 나는 이미 잊었다.

 
Aleksei Stepanenko :

내가 도서관을 포함했는가? 아니면 여기 아니면 이미 잊어버렸습니다.

추후에 저장한 파일의 버전이 저장되어 있기 때문에 파일의 공동 동시 편집이 불가능한 것으로 보입니다.

예를 들어 프로그램 A는 편집을 위해 파일을 열었고 동시에 프로그램 B는 동일한 작업을 수행한 다음 프로그램 A가 파일을 변경하고 FileClose를 사용하여 저장한 다음 프로그램 B가 동일한 작업을 수행했지만 프로그램 C에서 파일을 열면 파일에는 프로그램 A의 변경 사항이 포함되지 않고 프로그램 B가 프로그램 A보다 나중에 저장했기 때문에 프로그램 B가 구현하고 작성한 변경 사항만 포함됩니다.

그러나 그것은 정확하지 않습니다.

이에 대한 정보가 전혀 없나요?

 
하나의 파일로 프로그램을 동시에 운영하는 것은 최악의 악이다. 파일로 작업할 때 EA는 다른 EA가 이 파일을 읽고 쓰는 것을 금지해야 합니다. SQL 또는 플래그 전역 변수 또는 플래그 파일을 사용하십시오. 그렇지 않으면 감지하기 어려운 이해할 수 없는 오류가 발생합니다.
 
Aleksei Stepanenko :
하나의 파일로 프로그램을 동시에 운영하는 것은 최악의 악이다. 파일로 작업할 때 EA는 다른 EA가 이 파일을 읽고 쓰는 것을 금지해야 합니다. SQL 또는 플래그 전역 변수 또는 플래그 파일을 사용하십시오. 그렇지 않으면 감지하기 어려운 이해할 수 없는 오류가 발생합니다.

이것은 그러한 악이 아니며 다른 작업이 있으며 특정 기능을 고려할 필요가 있습니다.

분명히 변경 사항 저장은 FileClose 순간에 정확하게 발생하며 그때까지는 아무도 이에 대해 의심하지 않습니다.

 
당신이 결정합니다. 인간의 두뇌는 새로운 아이디어가 어렵게 뿌리를 내리도록 배열되어 있습니다.
 
EfremovSergey :

추후에 저장한 파일의 버전이 저장되어 있기 때문에 파일의 공동 동시 편집이 불가능한 것으로 보입니다.

예를 들어, 프로그램 A는 편집을 위해 파일을 열었고 동시에 프로그램 B는 동일한 작업을 수행한 다음 프로그램 A가 변경하고 FileClose를 사용하여 저장한 다음 프로그램 B도 동일한 작업을 수행했지만 프로그램 C에서 파일을 열 때 파일에는 프로그램 A의 변경 사항이 포함되지 않고 프로그램 B가 프로그램 A보다 나중에 저장했기 때문에 프로그램 B가 구현하고 작성한 변경 사항만 포함됩니다.

그러나 그것은 정확하지 않습니다.

이에 대한 정보가 전혀 없나요?

설정하기 어렵지만 불가능한 것은 아닙니다. 개봉할 때와 같은 시간으로 마지막 변경 시간을 기록하기 전에 확인하는 것으로 충분합니다. 즉, FILE_MODIFY_DATE를 읽은 다음 파일을 열고 변경하고 FILE_MODIFY_DATE를 다시 읽고 이전 것과 비교하고 아무도 변경하지 않은 경우 변경 사항을 저장하는 동안 파일을 닫습니다. 그렇지 않으면 변경 사항을 취소하고 ... 열기를 반복합니다. 다소 이렇습니다.

 
EfremovSergey :

이것은 그러한 악이 아니며 다른 작업이 있지만 특정 기능을 고려할 필요가 있습니다.

분명히 변경 사항은 FileClose 순간에 정확히 저장되며 그때까지는 아무도 이에 대해 의심하지 않습니다.

사실이 아닙니다.

파일플러시

I/O 파일 버퍼에 남아 있는 모든 데이터 를 디스크로 플러시합니다 .

 void    FileFlush ( 
   int   file_handle       // handle файла 
   );
 
Alexey Viktorov :

설정은 어렵지만 불가능한 것은 아닙니다. 개봉할 때와 같은 시간으로 마지막 변경 시간을 기록하기 전에 확인하는 것으로 충분합니다. 즉, FILE_MODIFY_DATE를 읽은 다음 파일을 열고 변경하고 FILE_MODIFY_DATE를 다시 읽고 이전 것과 비교하고 아무도 변경하지 않은 경우 변경 사항을 저장하는 동안 파일을 닫습니다. 그렇지 않으면 변경 사항을 취소하고 ... 열기를 반복합니다. 다소 이렇습니다.

이것은 "바쁜"플래그 (먼저 일어난 사람이 슬리퍼를 얻음)와 거의 같지만 훨씬 더 어렵지만 아이디어는 흥미롭고 좋아했습니다. 감사합니다.

 
Alexey Viktorov :

사실이 아닙니다.

파일플러시

I/O 파일 버퍼에 남아 있는 모든 데이터를 디스크로 플러시합니다.

FileClose 로 저장하는 맥락에서 이것이 무엇을 의미하는지 정말로 이해하지 못했습니다.