추적 작업(함수 그래프 작성) - 페이지 4 123456789 새 코멘트 Алексей Тарабанов 2011.01.22 23:26 #31 이 템플릿을 사용했습니다. /* extern bool TraceIsAllowed; // Показывать трассировку? //+------------------------------------------------------------------+ //| XXX //+------------------------------------------------------------------+ void XXX(string MasterName, string ProgramTrace, string Parameter) { string SlaveName="XXX"; // Имя функции. ProgramTrace=ProgramTrace+"=>"+SlaveName; // Путь обращения к функции. if( Parameter!="" ) ProgramTrace=ProgramTrace+"("+Parameter+")"; string Message=ProgramTrace; // Функциональные сообщения. LastErrorCode=GetLastError(); if( LastErrorCode>0 ) { // Ошибка или некорректные параметры. Message=Message+" ERROR "+LastErrorCode+" at Start"; Message=Message+""; // Значения параметров. Print(Message); return; // Функцию не выполнять. } if( TraceIsAllowed ) Print(Message); // Задана трассировка программы . //---- //---- LastErrorCode=GetLastError(); if( LastErrorCode>0 ) Message=Message+" ERROR "+LastErrorCode; if( Message!=ProgramTrace ) { // Были функциональные сообщения. Message=Message+" "; // Функция выполнена. Print(Message); // Печать функциональных сообщений. } return; } //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { string SlaveName="Init"; // Имя функции. string ProgramTrace=SlaveName; // Путь обращения к функции. string Message=ProgramTrace; // Функциональные сообщения. LastErrorCode=GetLastError(); if( LastErrorCode>0 ) { // Ошибка или некорректные параметры. Message=Message+" ERROR "+LastErrorCode+" at Start"; Print(Message); return(0); // Функцию не выполнять. } if( TraceIsAllowed ) Print(Message); // Задана трассировка программы . //---- //---- LastErrorCode=GetLastError(); if( LastErrorCode>0 ) Message=Message+" ERROR "+LastErrorCode; if( Message!=ProgramTrace ) { // Были функциональные сообщения. Message=Message+" "; // Функция выполнена. Print(Message); // Печать функциональных сообщений. } return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { string SlaveName="Start"; // Имя функции. string ProgramTrace=SlaveName; // Путь обращения к функции. string Message=ProgramTrace; // Функциональные сообщения. LastErrorCode=GetLastError(); if( LastErrorCode>0 ) { // Ошибка или некорректные параметры. Message=Message+" ERROR "+LastErrorCode+" at Start"; Print(Message); return(0); // Функцию не выполнять. } if( TraceIsAllowed ) Print(Message); // Задана трассировка программы . //---- //---- LastErrorCode=GetLastError(); if( LastErrorCode>0 ) Message=Message+" ERROR "+LastErrorCode; if( Message!=ProgramTrace ) { // Были функциональные сообщения. Message=Message+" "; // Функция выполнена. Print(Message); // Печать функциональных сообщений. } return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { string SlaveName="DeInit"; // Имя функции. string ProgramTrace=SlaveName; // Путь обращения к функции. string Message=ProgramTrace; // Функциональные сообщения. LastErrorCode=GetLastError(); if( LastErrorCode>0 ) { // Ошибка или некорректные параметры. Message=Message+" ERROR "+LastErrorCode+" at Start"; Print(Message); return(0); // Функцию не выполнять. } if( TraceIsAllowed ) Print(Message); // Задана трассировка программы . //---- //---- LastErrorCode=GetLastError(); if( LastErrorCode>0 ) Message=Message+" ERROR "+LastErrorCode; if( Message!=ProgramTrace ) { // Были функциональные сообщения. Message=Message+" "; // Функция выполнена. Print(Message); // Печать функциональных сообщений. } return(0); } */ //+------------------------------------------------------------------+ --- 2011.01.22 23:34 #32 tara : 이 템플릿을 사용했습니다. 그렇게 작지 않습니다. Алексей Тарабанов 2011.01.22 23:35 #33 sergeev : 또한 코드에 두 개의 블록이 있습니다. 처음과 끝에 ... 하지만 하나가 필요합니다. 결국 추적과 관련이 없습니다. 삭제할 수 있습니다. --- 2011.01.22 23:36 #34 tara : 결국 추적과 관련이 없습니다. 삭제할 수 있습니다. 네. 알겠어요. 그러나 여전히 ... 우리는 오류를 고려하지 않고 함수에 대한 각 입력을 고려합니다. Алексей Тарабанов 2011.01.22 23:38 #35 sergeev : 네. 알겠어요. 그러나 여전히 ... 우리는 오류를 고려하지 않고 함수에 대한 각 입력을 고려합니다. 실수도 버릴 수 있습니다. extern bool TraceIsAllowed; // Показывать трассировку? //+------------------------------------------------------------------+ //| XXX //+------------------------------------------------------------------+ void XXX( string MasterName, string ProgramTrace, string Parameter) { string SlaveName= "XXX" ; // Имя функции. ProgramTrace=ProgramTrace+ "=>" +SlaveName; // Путь обращения к функции. if ( Parameter!= "" ) ProgramTrace=ProgramTrace+ "(" +Parameter+ ")" ; string Message=ProgramTrace; // Функциональные сообщения. if ( TraceIsAllowed ) Print (Message); // Задана трассировка программы . //---- //---- return ; } Андрей 2011.01.22 23:40 #36 ... 추적을 하는 것이 올바른 Mql 언어인가?! --- 2011.01.22 23:40 #37 tara : 실수도 버릴 수 있습니다. :)) 작업(첫 번째 게시물을 읽는 경우)은 "{" 바로 뒤에 소스 코드의 각 기능에 하나의 유틸리티 기능만 추가하는 것입니다. 그러나 소스 코드의 모든 패스를 가져오고 호출 트리를 구축하는 방식입니다. 동시에 원래 함수의 입력 매개변수도 결과도 내부 코드도 jartmailru : ... 추적을 하는 것이 올바른 Mql 언어인가?! 우리는 깨끗한 흔적에 대해 이야기하고 있지 않습니다. 그러나 함수의 그래프를 만드는 것에 대해서만. Андрей 2011.01.22 23:48 #38 sergeev : 우리는 깨끗한 흔적에 대해 이야기하고 있지 않습니다. 그러나 함수의 그래프를 만드는 것에 대해서만. 정적 코드 분석 ... 실행이 필요하지 않습니다. 코드는 기능(블록)으로 나뉩니다. 그런 다음 누가 누구를 호출하는지 분석됩니다. Алексей Тарабанов 2011.01.22 23:50 #39 jartmailru : ... 추적을 하는 것이 올바른 Mql 언어인가?! 왜 안 돼요. Vladimir Gomonov 2011.01.22 23:51 #40 sergeev : :)) 작업(첫 번째 게시물을 읽는 경우)은 "{" 바로 뒤에 소스 코드의 각 기능에 하나의 유틸리티 기능만 추가하는 것입니다. 그러나 소스 코드의 모든 패스를 가져오고 호출 트리를 구축하는 방식입니다. 이 문제는 해결할 수 없는 문제가 아닙니까? 이런 식으로 산술 () [] 및 연산자 {} 대괄호 쌍을 제거하고 이를 여는 유일한 대괄호로 대체할 수 있습니다. 약한? ;) 123456789 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
이 템플릿을 사용했습니다.
그렇게 작지 않습니다.
또한 코드에 두 개의 블록이 있습니다. 처음과 끝에 ... 하지만 하나가 필요합니다.
결국 추적과 관련이 없습니다. 삭제할 수 있습니다.
네. 알겠어요. 그러나 여전히 ... 우리는 오류를 고려하지 않고 함수에 대한 각 입력을 고려합니다.
네. 알겠어요. 그러나 여전히 ... 우리는 오류를 고려하지 않고 함수에 대한 각 입력을 고려합니다.
실수도 버릴 수 있습니다.
실수도 버릴 수 있습니다.
:))
작업(첫 번째 게시물을 읽는 경우)은 "{" 바로 뒤에 소스 코드의 각 기능에 하나의 유틸리티 기능만 추가하는 것입니다.
그러나 소스 코드의 모든 패스를 가져오고 호출 트리를 구축하는 방식입니다.
동시에 원래 함수의 입력 매개변수도 결과도 내부 코드도
... 추적을 하는 것이 올바른 Mql 언어인가?!
우리는 깨끗한 흔적에 대해 이야기하고 있지 않습니다. 그러나 함수의 그래프를 만드는 것에 대해서만.
우리는 깨끗한 흔적에 대해 이야기하고 있지 않습니다. 그러나 함수의 그래프를 만드는 것에 대해서만.
코드는 기능(블록)으로 나뉩니다. 그런 다음 누가 누구를 호출하는지 분석됩니다.
... 추적을 하는 것이 올바른 Mql 언어인가?!
왜 안 돼요.
:))
작업(첫 번째 게시물을 읽는 경우)은 "{" 바로 뒤에 소스 코드의 각 기능에 하나의 유틸리티 기능만 추가하는 것입니다.
그러나 소스 코드의 모든 패스를 가져오고 호출 트리를 구축하는 방식입니다.
이 문제는 해결할 수 없는 문제가 아닙니까? 이런 식으로 산술 () [] 및 연산자 {} 대괄호 쌍을 제거하고 이를 여는 유일한 대괄호로 대체할 수 있습니다. 약한?
;)