오류, 버그, 질문 - 페이지 727

 
Renat :

그러다가 FileReadArray에 대한 질문이 생겼고, 설명 에서 잘못된 유형의 저장된 데이터를 읽는 기능 이 있다고 설명했습니다.

따라서 질문: 이 기능이 언어 보안에 어떻게 적합합니까?

정상이라면 비트 필드를 원하는 유형으로 변환하기 위한 표준 함수를 만들지 않겠습니까?

일반적으로 순서를 정하고 이 기능을 제거하거나 사람들이 긴 산술을 구현하도록 하십시오.

다음은 나사 와이프 파일을 통한 이 기능의 예입니다.

 double arr[]; ulong arr1[]; 
//+------------------------------------------------------------------+
void OnStart ()
  {   
   ArrayResize (arr, 1 ); arr[ 0 ]= 123.2564 ;
   WriteArrayFile();
   ReadArrayFile();
   Print (arr1[ 0 ]);
  }
//+------------------------------------------------------------------+
void WriteArrayFile( string folder= "Calculator" )
  {
   int han= FileOpen (folder+ ".dat" , FILE_WRITE | FILE_BIN );
   if (han!= INVALID_HANDLE )
     {      
       FileWriteArray (han,arr);              
       FileClose (han);
     }
  }
//+------------------------------------------------------------------+
void ReadArrayFile( string folder= "Calculator" )
  {
   int han= FileOpen (folder+ ".dat" , FILE_READ | FILE_BIN );
   if (han!= INVALID_HANDLE )
     {      
       FileReadArray (han,arr1);             
       FileClose (han);
     }
  }
//+------------------------------------------------------------------+
 
편집증이 감지되었습니다.
 
TheXpert :
편집증이 감지되었습니다.

생각을 발전시키십시오.

추신: 저는 실제로 이 기능을 안전한 것으로 인식하고 아날로그로 만드는 것에 찬성하지만 파일을 사용하지 않고 직접적으로 만듭니다.

그러나 MQ가 이를 안전하지 않은 것으로 인식하면 함수에서 제거해야 합니다.

ZZY 그건 그렇고, 어쩌면 오늘 내가 정말 잘못된 것을 조각하고 있는지도 모릅니다. 그들은 이미 두 가지 질문에 대답하지 않았습니다. 당신은 나를 계몽하고 내가 바보인 곳을 손가락으로 가리킵니다.

 
Urain :

다음은 나사 와이프 파일을 통한 이 기능의 예입니다.


파일을 통해, 왜? 더 쉬울 수 있습니다. 단순 구조의 데이터 캐스팅에 대해 읽기
 
또는 그렇게
 
Renat :
십자가에서 테스트할 때 이익 및 마진 요구 사항의 올바른 변환을 위한 다른 비율의 정확한 시뮬레이션이 있습니다.
시각화를 실행하면 시장 시계의 배경 기호 수를 기반으로 한 계산의 양을 즉시 이해할 수 있습니다.
다 이해할 수 있지만 속도의 차이는 13.7배... 글쎄요, 2배입니다. 그리고 메이저 대회 의 개장 가격 으로 테스트 속도에서 강아지의 기쁨은 십자가에서 눈물을 흘리는 낙담으로 대체되었습니다. 그리고 30개의 기본 원격 에이전트를 사용하는 대신 다시 클라우드를 강타해야 합니다... Abydna!
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 
Urain :

생각을 발전시키십시오.

추신: 저는 실제로 이 기능을 안전한 것으로 인식하고 아날로그로 만드는 것에 찬성하지만 파일을 사용하지 않고 직접적으로 만듭니다.

그러나 MQ가 이를 안전하지 않은 것으로 인식하면 함수에서 제거해야 합니다.

ZZY 그건 그렇고, 어쩌면 오늘 내가 정말 잘못 조각하고 있는 것 같습니다. 그들은 이미 두 가지 질문에 대답하지 않았습니다. 당신은 나를 계몽하고, 내가 바보인 곳을 손가락으로 가리킵니다.

파일 자체는 익명입니다. 이 파일이 어떻게 기록되었는지 미리 알 수 없습니다. 즉, 위에서 설명한 기능을 비활성화할 수 없습니다. 물론 순전히 텍스트 파일을 관능적으로 정의할 수 있습니다. 즉, 유니코드 및 Ansi 인코딩에 미묘한 차이가 있습니다.

따라서 원하는 파일을 읽을 수 있습니다. 그리고 이것은 읽기(및 쓰기도) 크기가 제어되기 때문에 위험한 상황으로 이어지지 않습니다. 스택을 팝할 수 없습니다. 프로세스의 메모리에 주소를 가져올 수 있는 방법은 없습니다.

 
muallch :
다 이해할 수 있지만 속도의 차이는 13.7배... 글쎄요, 2배입니다. 그리고 메이저 대회 의 개장 가격 으로 시험 속도를 낸 강아지의 기쁨은 십자가 위에서 눈물을 흘리는 낙담으로 바뀌었습니다. 그리고 30개의 기본 원격 에이전트를 사용하는 대신 다시 클라우드를 강타해야 합니다... Abydna!
우리는 이 문제를 다루고 있습니다. 십자가의 시가에 대한 테스트가 가속화될 것입니다.
 
stringo :

파일 자체는 익명입니다. 이 파일이 어떻게 기록되었는지 미리 알 수 없습니다. 즉, 위에서 설명한 기능을 비활성화할 수 없습니다. 물론 순전히 텍스트 파일을 관능적으로 정의할 수 있습니다. 즉, 유니코드 및 Ansi 인코딩에 미묘한 차이가 있습니다.

따라서 원하는 파일을 읽을 수 있습니다. 그리고 이것은 읽기(및 쓰기도) 크기가 제어되기 때문에 위험한 상황으로 이어지지 않습니다. 스택을 팝할 수 없습니다. 프로세스 메모리에 주소를 가져올 수 있는 방법은 없습니다.

그렇다면 유형 캐스팅 없이 직접 데이터 읽기 기능을 도입하지 않을 이유가 없습니다.

 double a= 123.2564 ; ulong b;

b=Byte(a, TYPE_ULONG );
Print (b);
//--- результат 4638373815016729713

이 경우를 함수로 꿰매면 모든 것이 안전할 것입니다.

 
Urain :

그렇다면 유형 캐스팅 없이 직접 데이터 읽기 기능을 도입하지 않을 이유가 없습니다.

이 경우를 함수로 꿰매면 모든 것이 안전할 것입니다.

구조체 __double { 더블 v; }

구조체 __long { 긴 v; }

__더블 에이; __롱비;

평균 = 123.456;

b=아;

bv= 4638373815016729713;

어렵지 않다.

+ 상위 링크 외에 읽기 https://www.mql5.com/en/articles/364


한 유형에서 다른 유형으로의 전송 - 매크로 또는 기능으로 등록할 수 있습니다.

하지만 별로 어렵지 않습니다.

Избавляемся от балласта самодельных DLL
Избавляемся от балласта самодельных DLL
  • 2012.01.31
  • o_O
  • www.mql5.com
Если MQL5-программисту недостаточно функционала языка, он вынужден обращаться к дополнительным инструментам. Для этого приходится использовать другой язык программирования и создавать промежуточную DLL. В MQL5 имеется механизм представления разных типов данных с помощью структур и передачи их в API, но к сожалению, MQL5 не отвечает нам на вопрос о том, как вытянуть данные из принятого указателя. В данной статье мы поставим точку в этом вопросе и покажем простые механизмы обмена сложными типами данных и работе с ними.