찻주전자의 질문 - 페이지 34

 

StringSplit 정보: 왜 정적 배열을 사용할 수 없습니까?

도움말 예시

 string to_split= "мама_мыла_раму" ; // строка для разбивки на подстроки
   string sep= "_" ;                 // раздедитель в виде символа
   ushort u_sep;                   // код символа разделителя
   string result[ 3 ];               // массив для получения строк
   //--- получим код разделителя
   u_sep= StringGetCharacter (sep, 0 );
   //--- разобьем строку на подстроки
   int k=StringSplit(to_split,u_sep,result);
   //--- выведем комментарий 
   PrintFormat ( "Получено строк: %d. Использован разделитель '%s' с кодом %d" ,k,sep,u_sep);
   //--- теперь выведем все полученные строки
   if (k> 0 )
     {
       for ( int i= 0 ;i<k;i++)
        {
         PrintFormat ( "result[%d]=%s" ,i,result[i]);
        }
     }
작동하지만 4007을 맹세합니다. 충분한 메모리가 있어야하며 크기가 변경되지 않아야합니다. .. 명확하지 않습니다.
 
Silent :

StringSplit 정보: 왜 정적 배열을 사용할 수 없습니까?

도움말 예시

작동하지만 4007을 맹세합니다. 충분한 메모리가 있어야하며 크기를 변경할 필요가 없습니다 .. 명확하지 않습니다.
 case 4007 : error_string= "Недостаточно памяти для перераспределения массива либо попытка изменения размера статического массива!" ;
그리고 도움말에는 "엄마가 프레임을 씻었다"고 나와 있습니까? 도움말에서 예제를 참조하는 경우 예제에 대한 링크를 제공하십시오.
 
tol64 :
그리고 도움말에는 "엄마가 프레임을 씻었다"고 나와 있습니까? 도움말에서 예제를 참조하는 경우 예제에 대한 링크를 제공하십시오.

당신은 믿지 않을 것입니다 ...

 
Silent :

당신은 믿지 않을 것입니다 ...

참고로 배열이 string result[ 3 ]로 선언된 것은 없습니다. 이것은 다음과 같은 이유로 오류입니다.

"메모리가 부족하여 배열을 재할당하거나 정적 배열의 크기를 조정하려고 했습니다!"

 
tol64 :
참고로 배열이 string result[ 3 ]로 선언된 것은 없습니다. 이것은 실수입니다.
나는 물었습니다 - 이유, 강조 표시 - 어디 (변경됨).
 
Silent :
나는 물었습니다 - 이유, 강조 표시 - 어디 (변경됨).
배열을 static- 3 으로 선언 했기 때문입니다. 결과 하위 문자열에는 3개 이상의 문자가 있습니다.
Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
 
Silent :
나는 물었습니다 - 이유, 강조 표시 - 어디 (변경됨).
일반적으로 정적 배열은 언제 어디서 어떻게 사용하는지 명확하지 않습니다. 컴파일러를 포기하고 싶지 않은 것 같고 그런 문제가 발생합니다. 작동하는 것처럼 보이지만 오류가 있습니다.
 
tol64 :
배열을 static- 3 으로 선언 했기 때문입니다. 결과 하위 문자열에는 3개 이상의 문자가 있습니다.
정적 [3]은 3자가 아닌 3(하위)줄이라고 생각했습니다.
 
Silent :
Static [3]은 3자가 아닌 3(서브)줄이라고 생각했습니다.

네, 최대 3글자를 삭제하면

 2011.07 . 28 00 : 43 : 55      StringSplit (EURUSD,H1) _LastError 1 4007
2011.07 . 28 00 : 43 : 55      StringSplit (EURUSD,H1) result[ 2 ]=рам
2011.07 . 28 00 : 43 : 55      StringSplit (EURUSD,H1) result[ 1 ]=мыл
2011.07 . 28 00 : 43 : 55      StringSplit (EURUSD,H1) result[ 0 ]=мам
2011.07 . 28 00 : 43 : 55      StringSplit (EURUSD,H1) Получено строк: 3 . Использован разделитель '_' с кодом 95
그것은 요점이 아니다.
 
Silent :
일반적으로 정적 배열은 언제 어디서 어떻게 사용하는지 명확하지 않습니다. 컴파일러를 포기하고 싶지 않은 것 같고 그런 문제가 발생합니다. 작동하는 것처럼 보이지만 오류가 있습니다.
그리고 당신은 필요에 따라 이것 또는 그 주제를 공부하려고 노력합니다. 시스템에서 특정 "레버"(기능)가 필요한 순간에 도달하는 즉시 이를 사용하여 실험을 시작하십시오. 나는 이 학습 방법(제 경우)이 꽤 잘 작동한다는 것을 발견했습니다.)))