mql5 언어의 특징, 미묘함 및 작업 방법 - 페이지 65

 

파일 자체를 삭제하지 않고 바이너리 데이터가 있는 파일의 크기를 새로운 데이터 크기로 줄이는 방법을 알려주십시오. 아니면 외부 dll 호출을 통해서만 구현할 수 있습니까?

 
콘스탄틴 :

파일 자체를 삭제하지 않고 바이너리 데이터가 있는 파일의 크기를 새로운 데이터 크기로 줄이는 방법을 알려주십시오. 아니면 외부 dll 호출을 통해서만 구현할 수 있습니까?

SetEndOfFile 함수의 유사체가 필요합니다.

이것은 약 6 년 전에 질문

 
결합기 :

SetEndOfFile 함수의 유사체가 필요합니다.

이것은 약 6 년 전에 질문

나는 이것에 대해 쓰고 있습니다)) 그렇지 않으면 외부 dll을 통해 수행하거나 파일을 삭제하는 것이 정결하지 않습니다.

 
결합기 :

SetEndOfFile 함수의 유사체가 필요합니다.

이것은 약 6 년 전에 질문

 bool SetEndOfFile( const string FileName, const uint Size, const int Commong_Flag = 0 )
{
   uchar Buffer[];
  
   return (( FileLoad (FileName, Buffer, Commong_Flag) > Size) && ArrayResize (Buffer, Size) && FileSave (FileName, Buffer, Commong_Flag)));
}
 
fxsaber :

파일은 증가하는 방향으로만 크기를 변경합니다. 데이터 배열이 감소하면 파일은 동일한 크기로 유지됩니다.

 
콘스탄틴 :

파일은 위쪽으로 만 크기를 변경합니다. 데이터 배열이 감소하면 파일은 동일한 크기로 유지됩니다.

감소.

 
fxsaber :
아니, 지옥같은 오버헤드야
 
결합기 :
아니, 지옥같은 오버헤드야

틀림없이!

 
다시한번 더블이라는 주제로

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

오류, 버그, 질문

fxsaber , 2018.01.15 11:53

입력 fmod가 두 배이기 때문입니다. double은 많은 수의 정수를 저장할 수 없습니다. 예를 들어 귀하의 경우:

 Print ( DoubleToString (( double ) 1314725038414749 07 , 0 )); // 1314725038414749 12

이렇게 하세요

 long fmod ( const long Value, const long Value2 )
{
   return (Value % Value2);
}


float를 예로 사용하면 double의 기능을 빠르게 이해할 수 있습니다.

 #define PRINT(A) Print ( #A + " = " + ( string )(A))

void OnStart ()
{
   for ( int i = 0 ; i < INT_MAX ; i++)
     if (( int )( float )i != i)
    {
      PRINT(i);
      PRINT(( float )i);
      PRINT(( double )i);
      
       break ;
    }
}


결과

i = 16777217
( float )i = 16777216.0
( double )i = 16777217.0


ZY double은 전체 범위 내 정보를 잃지 않으며, long에서는 그렇지 않습니다.

 
콘스탄틴 :

나는 이것에 대해 쓰고 있습니다)) 그렇지 않으면 외부 dll을 통해 수행하거나 파일을 삭제하는 것이 정결하지 않습니다.

보았다, 원했지만 잊었다

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2011.08.01
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы