[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 3. - 페이지 385

 
nadya :
물론 이 변수에 적절한 유형이 있으면 가능합니다.
하나의 세포. 그리고 이와 같이 - 상수만 사용: "배열은 쉼표로 구분된 1차원 상수 시퀀스로 초기화됩니다. 시퀀스는 중괄호로 구성됩니다."
 
kifa911 :
오늘의 좋은 시간! 배열 초기화에 대해 질문이 있습니다. 튜토리얼에서는 다음과 같이 말합니다. 배열은 적절한 유형의 상수로만 초기화 할 수 있습니다. 1차원 및 다차원 배열은 쉼표로 구분된 1차원 상수 시퀀스로 초기화됩니다. 시퀀스는 중괄호로 묶입니다. 이 경우 "상수"라는 단어가 혼란 스럽습니다. 변수를 통해 특정 배열 인덱스에 값을 할당할 수 없습니다.

할당은 가능하지만 초기화 시에는 불가능합니다.

상황은 다음과 같습니다.

 int aaa = 4 ;
int bbb[ 5 ] = { 0 , 1 , 2 , 3 , 0 };
bbb[ 4 ] = aaa;

허용

그리고 상황

 int aaa = 4 ;
int bbb[ 5 ] = { 0 , 1 , 2 , 3 , aaa};

오류가 발생합니다

 
nadya :
물론 이 변수에 적절한 유형이 있으면 가능합니다.

그럼 여기 질문이 있습니다. 일부 함수는 참조로 두 개의 데이터 배열을 전달해야 합니다. 예를 들면 다음과 같습니다.

 void SomeFunction( int & firstmassive[][ 3 ], double & secondmassive[][ 3 ])

{

 int iCount=- 1 ,

      ifirst,isecond,ithird;

 double dfirst,dsecond,dthird;

...

 iCount++;

  firstmassive[iCount][ 0 ]=ifirst;firstmassive[iCount][ 1 ]=isecond;firstmassive[iCount][ 2 ]=ithird;

  secondassive[iCount][ 0 ]=dfirst;secondmassive[iCount][ 1 ]=dsecond;secondmassive[iCount][ 2 ]=dthird;

  print( "iCount= " +iCount+ " firstmassive_2= " +firstmassive[iCount][ 1 ]+ " isecond= " +isecond);

...

return ( 0 );

}

이 기능을 해제하면 터미널의 "전문가" 탭에 다음과 같은 종류의 메시지가 표시됩니다.

 iCount= 0 firstmassive_2= 0 isecond= =15
iCount= 1 firstmassive_2= 0 isecond= =25
후자가 값을 가지고 있지만 변수의 값은 배열로 전송되지 않는 것으로 나타났습니다. 내가 뭘 잘못했어?
 
artmedia70 :

포함된 파일의 이름은 다음과 같습니다. GetExstremumZZPrice.mqh ???

터미널 폴더 Terminal_folder/experts/include ???에 있습니다.


이름은 라이브러리 폴더에 있었고 이제 포함 폴더로 이동했지만 결과는 동일합니다.
 
kifa911 :

그럼 여기 질문이 있습니다. 일부 함수는 참조로 두 개의 데이터 배열을 전달해야 합니다. 예를 들면 다음과 같습니다.

이 기능을 해제하면 터미널의 "전문가" 탭에 다음과 같은 종류의 메시지가 표시됩니다.

후자가 값을 가지고 있지만 변수의 값은 배열로 전송되지 않는 것으로 나타났습니다. 내가 뭘 잘못했어?

오류가 표시되지 않습니다. 아마도 다른 사람이 당신을 도울 수 있습니다
 
질문을 반복합니다. 파일 작업에 대해 설명해주십시오. 파일에 일부 정보를 기록한 후 나중에 파일에서 부분적으로 삭제할 수 있습니까? 예를 들어 텍스트 문서에 몇 줄을 쓴 다음 추가 줄을 삭제하거나 파일 작업 기능을 사용하여 수정합니다. 가능합니까?
 
fore-x :
질문을 반복합니다. 파일 작업에 대해 설명해주십시오. 파일에 일부 정보를 기록한 후 나중에 파일에서 부분적으로 삭제할 수 있습니까? 예를 들어 텍스트 문서에 몇 줄을 쓴 다음 추가 줄을 삭제하거나 파일 작업 기능을 사용하여 수정합니다. 가능합니까?
할 수 있다.
 
Zhunko :
할 수 있다.
   if (text != " " ) 
    {
    handle = FileOpen (filename, FILE_CSV | FILE_READ | FILE_WRITE , ';' ); //открыл файл
     FileSeek (handle, 0 , SEEK_SET );                               //переместил указатель   
     while ( FileIsEnding (handle)==false)                              
      {
      pos = StringFind ( FileReadString (handle),symb, 0 );             //нашел нужную строку...  
       if (pos >= 0 ) break ;                                   //...файловый указатель в конце строки
       if ( FileIsEnding (handle)==true) break ;                            
      }
                                 
      ?????????????????? //тут что делать, как удалить или перезаписать выбранную строку
    
     FileWrite (handle,text);     //записываем новую строку
     FileClose (handle);           //закрываем файл
    }  
플리즈를 보냅니다. 줄의 시작 부분에 도달하려면 이제 무엇을 해야 합니까? 그 다음엔?
 
kifa911 :
오늘의 좋은 시간! 배열 초기화에 대해 질문이 있습니다. 튜토리얼에서는 다음과 같이 말합니다. 배열은 적절한 유형의 상수로만 초기화할 수 있습니다. 1차원 및 다차원 배열은 쉼표로 구분된 1차원 상수 시퀀스로 초기화됩니다. 시퀀스는 중괄호로 묶입니다. 이 경우 "상수"라는 단어가 혼란 스럽습니다. 변수를 통해 특정 배열 인덱스에 값을 할당할 수 없습니다.

따라서 초기화 및 할당을 구별해야 합니다.
 
Vinin :
그리고 당신이 어제 또는 내일에 대한 라인을 넣으면?

관심을 가져 주셔서 감사합니다. 그러나 귀하의 질문의 본질을 이해하지 못했습니다. 원칙적으로 어제 또는 내일 수 있습니다. 선은 아무 날짜에나 배치할 수 있으며 차트에 도달하면 고문이 작동합니까? 또는 설명이 어렵지 않다면 뭔가 이해가 되지 않습니다.