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

 
mrProF :
반면에 전체 파일은 str ...
FILE_ANSI 플래그를 다음과 같이 추가하십시오. 기본적으로 유니코드를 읽습니다 :)
그럼에도 불구하고 나는 15살이 될 것입니다. 왜냐하면 끝에 빈 줄이 있습니다.
MQL5 문서에 따르면 FileReadString 함수는 "파일 포인터의 현재 위치에서 파일에서 한 줄을 읽습니다... csv 파일에서 읽을 때 줄은 현재 위치에서 가장 가까운 구분 기호로 읽습니다. 텍스트 문자열의 종결자." 따라서 '파일 전체를 쓰고 있다'는 말에는 동의하지 않는다. FILE_ANSI가 넣으려고 했지만 아무 것도 제공하지 않습니다. 끝의 빈 줄에 대해: 잘 이해하지 못했습니다. 무슨 줄을 말하는지 설명하십시오.
 
DenisR :
MQL5 문서 에 따르면 FileReadString 함수는 "파일 포인터의 현재 위치에서 파일에서 한 줄을 읽습니다... csv 파일에서 읽을 때 해당 줄은 현재 위치에서 가장 가까운 구분 기호로 읽습니다. 텍스트 줄의 종결자." 따라서 '파일 전체를 쓰고 있다'는 말에는 동의하지 않는다. FILE_ANSI가 넣으려고 했지만 아무 것도 제공하지 않습니다. 끝의 빈 줄에 대해: 잘 이해하지 못했습니다. 무슨 줄을 말하는지 설명하십시오.

이것은 그가 쉼표를 올바르게 찾은 경우 인코딩이 일치하지 않으면 눈치 채지 못할 수 있습니다.
디버거로 살펴보겠습니다.
si 플래그는 무엇을 의미합니까? 아무 것도 제공하지 않고 코드를 복사하고 플래그를 추가했습니다. 모든 것이 정상입니다.
 
그리고 제가 말했듯이 결과는 다음과 같습니다.
si가 없으면 abrucadabra를 읽고 쉼표를 보지 않고 파일의 끝으로 날아갑니다.
si를 사용하면 모든 것이 잘 읽힙니다.
첨부 파일을 참조하십시오.
파일:
 
-Alexey- :
MetaEditor에서 "파일의 기능 목록" 버튼은 목록을 엽니다. 아래로 스크롤하면 문자 P로 끝나며 문자 R에 대한 클래스가 있지만 더 이상 이동하지 않습니다(아래를 가리키는 검은색 삼각형이 비활성화됨). 수정하십시오.

자세한 내용이 필요합니다.

빌드, 파일, 해상도...

방금 ChartObject.mqh 파일에서 시도했습니다. 위아래로 스크롤됩니다.

 
mrProF :
그리고 제가 말했듯이 결과는 다음과 같습니다.
si가 없으면 abrucadabra를 읽고 쉼표를 보지 않고 파일의 끝으로 날아갑니다.
si를 사용하면 모든 것이 잘 읽힙니다.
첨부 파일을 참조하십시오.
그것은 나에게서 si(5 505 1009)로 읽습니다. 즉, 나는 이제 어떤 이유로 0 대신 5와 같고 파일 크기 는 이전과 같이 505이고 FileTell은 이전과 같이 1009입니다.MT4에서는 동일한 스크립트가 읽습니다(15 505 505).
 
알렉스 :

자세한 내용이 필요합니다.

빌드, 파일, 해상도...

방금 ChartObject.mqh 파일에서 시도했습니다. 위아래로 스크롤됩니다.

Interesting :
그리고 적어도 목록의 대략적인 크기는 무엇입니까? 목록의 크기에 제한이있을 수 있습니다 ...

-알렉세이-

정확히 100줄.


흥미로운 :

나는 100에서 106까지(항상 다른 숫자이지만 110은 아님) 목록에 표시된 라이브러리(110개의 함수) 중 하나를 실험했습니다.

마지막 빌드는 100보다 큰 줄 수에 문제가 있는 것 같습니다. ChartObject.mqh의 목록에는 62줄만 있습니다. 해상도 1680x1050. Windows 7 글꼴 구성표 - 글꼴 확대.

 
DenisR :
그것은 나에게서 si(5 505 1009)로 읽습니다. 즉, 나는 이제 어떤 이유로 0 대신 5이고 파일 크기는 이전과 같이 505이고 FileTell은 이전과 같이 1009입니다.MT4에서는 동일한 스크립트가 읽습니다(15 505 505).
흠, 155091009가 있습니다.


 //+------------------------------------------------------------------+
//|                                                         test.mq5 |
//|                                                           mrProF |
//|                                                          http:// |
//+------------------------------------------------------------------+
#property copyright "mrProF"
#property link       "http://"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+


void OnStart ()
  { int handle;
   ulong i, size;
   double _Ask, _Bid;
   string str;
      
   handle = FileOpen ( "test.csv" , FILE_CSV | FILE_READ | FILE_ANSI , ',' );
   
   if (handle != INVALID_HANDLE )
     {
      size = FileSize (handle);
      
       for (i = 0 ; i < size; i++)
        {
         str = FileReadString (handle);
         _Ask = FileReadNumber (handle);
         _Bid = FileReadNumber (handle);
        
         if ( FileIsEnding (handle))
           {
             Print (i, " " ,size, " " , FileTell (handle));
             break ;
           }
        }
     }   
      
   FileClose (handle);

   return ;

  }
//+------------------------------------------------------------------+


방법을 알고 있다면 한 줄씩 디버깅을 시도하십시오 ...

 
mrProF :
흠, 155091009가 있습니다.



저도 처음에는 15 505 1009를 가지고 있었는데 터미널을 최신 버전(408)으로 업데이트해서 5 505 1009가 되었습니다. 하지만 어쨌든 파일 끝 기호는 파일 크기보다 클 수 없습니다 그 자체. 지금 그게 가장 걱정입니다.
 
alexvd :

자세한 내용이 필요합니다.

빌드, 파일, 해상도...

방금 ChartObject.mqh 파일에서 시도했습니다. 위아래로 스크롤됩니다.

빌드 404 및 408, Win XP Prof SP3, CPU 3.0GHz 및 RAM 3.0Gb.

글꼴 크기 및 기타 설정(색상 제외)은 표준입니다.

조치는 다음과 같습니다.

1. 라이브러리 또는 기타 소프트웨어 모듈을 생성합니다.

2. 우리는 100개가 넘는 일련의 절차와 기능을 형성합니다. 제 경우에는 110개였습니다(마이그레이션 라이브러리를 조롱했습니다).

좀 더 구체적으로 말하면 110개의 함수가 있었고 모듈은 대략 3310줄 정도의 크기로 나왔다.

3. 모듈을 컴파일합니다.

4. 함수 목록을 보려고 합니다.

목록에서 100~106개의 함수를 보았습니다(각 재컴파일, 다른 수와 함수 구성). 동시에 106개 기능의 이름이 먼저 표시되고 그 수가 감소하기 시작했습니다.

동시에 110개 기능 모두가 목록에 포함된 적이 없습니다.

추신

또 다른 이상한 순간이 있었습니다. 첫 번째 컴파일 이후에 몇 개의 함수(그러나 확실히 50개 미만)의 새 함수가 목록에 표시되지 않고 중단된 후 두세 번 다시 컴파일해야 했습니다.

예를 들어 그룹 메뉴 형태로 개별 수업을 선택하는 것과 같이 목록 형성 순서를 변경하거나(수업의 "채우기"가 별도의 목록에 표시됨) 별도의 관리자를 구성할 것을 제안합니다. 델파이에서 수행되는 방식과 유사합니다(이러한 요청에 대한 논의는 이미 포럼에 있습니다).

 
-Alexey- :
알렉스 :

자세한 내용이 필요합니다.

빌드, 파일, 해상도...

방금 ChartObject.mqh 파일에서 시도했습니다. 위아래로 스크롤됩니다.

마지막 빌드는 100보다 큰 줄 수에 문제가 있는 것 같습니다. ChartObject.mqh의 목록에는 62줄만 있습니다. 해상도 1680x1050. Windows 7 글꼴 구성표 - 글꼴 확대.

네, 재현했습니다.

감사합니다. 살펴보겠습니다.