2014-06-16 3 views
1

d3에서 파일 변수를 기본으로 선택했는데 해당 파일이 무엇인지 알아 내려고합니다.d3의 파일 변수에서 정보 추출 기본 선택

list f *didn't compile 
execute list dict f *same error 
execute list f *same error 

: 나는 또한 같은 것들을 시도

SELECTION: 58[B34] in program "FILEPRINTER", Line 7: File variable used 
where string expression expected. 

: 때문에,

print f *suppose the file variable's name is f in this case 

을하지만 작동하지 않았다 :

내가 말을했다 분명한 것은 시도 그러나 그것들은 또한 작동하지 않았다.

궁금한 사항이있을 경우, 내가 먼저이 작업을 수행하려고하는 이유는 작업중인 코드베이스에서 위아래로 전달되는 전역 변수가 있지만 그럴 수 없습니다 전역 변수가 그 값을 얻는 곳을 찾는다.

답변

0

해당 파일 포인터 변수를 "파일 설명자"라고합니다. 당신은 그것으로부터 어떤 정보도 얻을 수 없다.

파일 - 파일을 사용하여 쓰기 이벤트를 기록 할 수 있으며 코드에 의해 쓰기가 수행 된 후 업데이트 된 파일을 확인하십시오. 이 작업을 수행하기위한 세부 사항은 약간 번거로울 수 있습니다. Value-Add Reseller 나 계약에 유능한 도움을 받아야합니다.

실제 최종 사용자 시스템이 아닌 경우 "WHAT! FILE! IS! THIS?"와 같은 매우 독특한 텍스트로 작성된 항목을 수정할 수도 있습니다. 그런 다음 검색 시스템 명령을 사용하여 전체 계정 (또는 시스템)에서 해당 텍스트를 찾을 수 있습니다. 해당 명령의 올바른 사용법은 docs를 참조하십시오.

이 최선의 선택은 아마도 ... 다음 주입 :

IF @USER = "CRISZ" THEN ; * substitute your user ID 
    READU FOO FROM F,"BLAH" ELSE 
    DEBUG 
    RELEASE F,"BLAH" 
    END 
END 

그 코드는 하나의 사람을 중지합니다 - 그것은 정상 흘러 다른 사람을 위해. 중지되면 LIST-LOCKS 명령을 사용하여 "BLAH"항목에 대한 읽기 잠금이있는 파일을 확인하십시오. 그것이 당신의 파일입니다! 코드를 제거하고 다시 컴파일하는 것을 잊지 마십시오. 사용자가 적극적으로 사용하는 동안 코드를 다시 컴파일하면 중단됩니다. 몇 시간이 지난 후에나 테스트 시스템에서 이런 종류의 일을하는 것이 가장 좋습니다.

이와 같은 코드를 수정할 수 없다면 이와 같은 진단이 어려울 수 있습니다. 위의 제안이 도움이되지 않는다면, 나는이 도전이 당신의 개인적인 경험 수준을 넘어서고 있다고 생각하고 도움을 얻을 것을 권한다.

제안이 도움이된다면 답장으로 표시해주세요. :)

+0

불행히도 우리가 가지고있는 프로그램의 유일한 완전한 기능 버전은 프로덕션 환경에 있으므로 테이블을 잠그면 작동하지 않습니다. – zelinka

+0

전체 테이블을 잠그지 않습니다. 해당 파일에 대한 단일 레코드 (존재하지 않음)를 잠급니다. 아무도 영향을받지 않습니다 (마치 모든 사용자를 잠그는 것이 좋습니다. :)). 단지 목록을 잠그고, 파일 이름을보고, 디버그 라인에서 G로 이동하십시오. 그것은 계속되고 끝날 것입니다. 그런 다음 파일 이름을 가지고 테스트 코드를 제거 할 수 있습니다. – TonyG

+0

질문에 대한 답변이 있으면이 응답에 플래그를 지정하십시오. 감사. – TonyG