[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 470

 
iliaalyoshin >> :


다른 트릭? 예를 들면?

if (NormalizeDouble(a, 4)==NormalizeDouble(b, 4)) { ... }

 
sergeev >> :

if (NormalizeDouble(a, 4)==NormalizeDouble(b, 4)) { ... }


그래서 저도 시도해 보았는데 만일을 대비하여 Digits 대신 4, 5, 6을 썼습니다... 작동하지 않습니다!
 


고맙습니다! 실제로 이 기사는 매우 유익합니다. 그러나 MetaEditor에서 bool CompareDoubles 기능을 찾지 못했습니다 ...
 


또는 분명히 나는 완전히 이해하지 못하거나 오히려 라이브러리가 무엇인지 전혀 이해하지 못합니까?
 
iliaalyoshin писал(а) >>


또는 분명히 나는 완전히 이해하지 못하거나 오히려 라이브러리가 무엇인지 전혀 이해하지 못합니까?


실수 비교 함수
 //+------------------------------------------------------------------+
//| correct comparison of 2 doubles                                  |
//+------------------------------------------------------------------+
bool CompareDoubles( double number1, double number2)
  {
   if (NormalizeDouble(number1-number2, 8 )== 0 ) return ( true );
   else return ( false );
  }
 
동료 전문가들이여, 저를 도와주십시오.
여기 어떻게 오는지 알려주세요.

파일에서 해당 배열로 숫자를 읽고 싶습니다.

파일의 숫자는 다음과 같습니다. 1.2121;1.2323;1.3434;1.4545

나는 그들을 위해 배열을 만듭니다: double s1[], s2[], r1[], r2[]

초기화 단계에서 다음을 읽었습니다.

k=0;
//----------------------------------------------

Handle=FileOpen(File_Name,FILE_CSV|FILE_READ,";");// Открытие файла
if(Handle<0) // Неудача при открытии файла
{
if(GetLastError()==4103) // Если файла не существует,..
Alert("Нет файла с именем ",File_Name);//.. извещаем трейдера
else // При любой другой ошибке..
Alert("Ошибка при открытии файла ",File_Name);//..такое сообщ
PlaySound("Bzrrr.wav"); // Звуковое сопровождение
return;
}
while(FileIsEnding(Handle)==false) // До тех пор, пока файловый ..
{ // ..указатель не в конце файла
//--------------------------------------------------------- 5 --
S_1 =StrToDouble(FileReadString(Handle));//
R_1 =StrToDouble(FileReadString(Handle));
S_2 =StrToDouble(FileReadString(Handle));
R_2 =StrToDouble(FileReadString(Handle));
s1[k]=S1; s2[k]=S_2; r1[k]=R_1; r2[k]=R_2;
k=k+1;
if(FileIsEnding(Handle)==true) // Файловый указатель в конце
break; // Выход из чтения и рисования
//--------------------------------------------------------- 6 --
}
FileClose( Handle ); // Закрываем файл
PlaySound("bulk.wav"); // Звуковое сопровождение

그러나 불행히도 배열이 채워지지 않았습니다 ...

방법 조언 부탁드립니다...
 

Посоветуйте, как тут быть....

첫째, csv 파일에서 요소는 ";"가 아닌 ","로 구분됩니다.
둘째, 배열은 파일 각 줄의 첫 번째 요소로 채워져야 합니다. 먼저 FileReadString 명령 으로 전체 문자열을 추출한 다음 단일 실수로 변환하면 다음 FileRead 명령이 파일의 다음 줄에서 작동합니다.

다음과 같이 읽기를 구성할 수 있습니다.

for(;;) {
str=FileReadString(Handle);
s1[k] =StrToDouble(StringSubstr(str,0,6));
s2[k] =StrToDouble(StringSubstr(str,7,6));
r1[k] =StrToDouble(StringSubstr(str,14,6));
r2[k] =StrToDouble(StringSubstr(str,21,6));
k++;
if(FileIsEnding(Handle)) break;
}


작동해야하지만 확실하지 않습니다 :)

 
Axmed писал(а) >>

첫째, csv 파일에서 요소는 ";"가 아닌 ","로 구분됩니다.
둘째, 배열은 파일 각 줄의 첫 번째 요소로 채워져야 합니다. 먼저 FileReadString 명령으로 전체 문자열을 추출한 다음 전체 문자열을 단일 실수로 변환하면 다음 FileRead 명령이 이미 파일의 다음 줄에서 작동합니다.

다음과 같이 읽기를 구성할 수 있습니다.

for(;;) {
str=FileReadString(Handle);
s1[k] =StrToDouble(StringSubstr(str,0,6));
s2[k] =StrToDouble(StringSubstr(str,7,6));
r1[k] =StrToDouble(StringSubstr(str,14,6));
r2[k] =StrToDouble(StringSubstr(str,21,6));
k++;
if(FileIsEnding(Handle)) break;
}


작동해야하지만 확실하지 않습니다 :)


기본 구분 기호는 ";"이지만 아무거나 사용할 수 있습니다.
 
Axmed писал(а) >>

당신이 쓰지 않는 뭔가 ...

 
Vinin писал(а) >>


기본 구분 기호는 ";"이지만 아무거나 사용할 수 있습니다.


CSV - 쉼표 로 구분된 값. 기본 구분 기호인 ","입니다. ";"으로 구분 훨씬 덜 일반적이며 MQL4에서 일반적으로 지원되는지 확실하지 않습니다.

당신이 쓰지 않는 뭔가 ...

내가 쓴 글에서 구체적으로 어떤 점이 마음에 들지 않았습니까?