테이블이 읽기 전용인지 확인하시겠습니까?여기요,
나는 한 단계에서 두 개의 데이터 테이블을 열고 데이터를 넣고 저장하고 닫는 큰 jsl 스크립트를 가지고 있습니다.
지금은 아무 문제 없이 정상적으로 실행됩니다. 그러나 여는 데이터 테이블은 회사 서버에 있으며 다른 사람이 파일을 열어 놓은 경우가 가끔 발생합니다. 즉, 스크립트가 읽기 전용 버전을 열고 저장할 수 없다는 의미입니다.
파일이 읽기 전용 모드로 열려 있는지 확인하는 방법을 스크립트에 추가하여 스크립트를 취소하고 사용자에게 경고할 수 있는 방법이 있습니까? 다른 사람이 사용 중인 파일을 열면 "X에서 사용 중인 파일입니다. 읽기 전용 버전을 여시겠습니까?"라는 메시지가 표시되는 Excel과 비슷합니다.
감사해요,
에드빈Re: 테이블이 읽기 전용인지 확인하십시오.마침내 작동하는 솔루션을 찾았으므로 나중에 다른 사람이 이 스레드를 찾을 경우를 대비하여 게시하고 있습니다.
dt = Data Table("Untitled");
Try(test = LogCapture(dt << save));
If(Contains(test, "problem"),
New Window("Error",
<<MODAL></MODAL>테이블이 읽기 전용이고 잠글 수 없는 경우 테스트는
test = "
I/O problem.
File not open in Write mode.
";
따라서 Contains(test, "problem") 이 작동하는 이유입니다.
Re: 테이블이 읽기 전용인지 확인하십시오.예, 또한 우리가 놓치고 있는 단순한 무언가라는 느낌이 듭니다. 어쨌든 감사합니다. 다른 사람이 아이디어가 있습니까?
Re: 테이블이 읽기 전용인지 확인하십시오.죄송합니다. 아이디어가 부족합니다. 아마도 다른 기여자가 방법을 생각할 수 있습니다. (아마도 나에게 일어나지 않은 단순한 일일 것입니다.)
Re: 테이블이 읽기 전용인지 확인하십시오.여기요,
나는 이 솔루션을 시도했고 몇 가지 다른 방법으로 Try 함수를 구성하려고 시도했지만 첫 번째 표현식에서 오류가 발생하더라도 두 번째 표현식에 도달하지 못하는 것 같습니다. 테이블은 여전히 닫혀 있지만 저장되지는 않습니다. 로그 파일의 모습은 다음과 같습니다.
Names Default to Here(1);
dt = Data Table("CharData G4 v3.0");
dt << add rows(1);
Try(
Close( dt, Save ),
Print( "Data table locked" );
);
I/O problem.
File not open in Write mode. Re: 테이블이 읽기 전용인지 확인하십시오.좋습니다. Try( expr1, expr2 ) 함수를 사용할 수 있습니다. 첫 번째 인수는 항상 평가되는 표현식입니다. 첫 번째 인수에 저장 작업을 사용하십시오. 두 번째 인수는 첫 번째 인수가 오류를 생성하는 경우에만 평가되는 표현식입니다. 이렇게 하면 오류를 잡을 수 있습니다.
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// changes made to data table, save table
Try(
Close( dt, Save ),
Print( "Data table locked" );
);
// rest of script
Re: 테이블이 읽기 전용인지 확인하십시오.이봐, 답장을 보내 주셔서 감사합니다. 안타깝게도 << Get Lock은 '0'을 반환하고 << Get Edit Lock은 'Empty()'를 반환합니다.
이제 다른 컴퓨터에서 내 테이블을 열었습니다. 내 컴퓨터에서 원하는 만큼 편집할 수 있으며 아무것도 잠겨 있지 않습니다. 그런데 저장을 하려고 하면 저장이 안되고 이전과 같이 "I/O 문제입니다. 쓰기 모드에서 파일이 열리지 않습니다.".Re: 테이블이 읽기 전용인지 확인하십시오.위의 제안을 잊어 버리십시오. 편집 잠금은 이전 잠금 메커니즘과 별개입니다. 간단한 방법은 데이터 테이블을 열고 << Get Lock 메시지를 열에 보내는 것입니다. 데이터 테이블이 잠긴 경우 모든 열도 잠깁니다. 결과는 참이어야 합니다(1).
Re: 테이블이 읽기 전용인지 확인하십시오.도움말 > 스크립팅 색인을 참조하십시오. "잠금"을 검색하고 편집 잠금 가져오기 및 편집 잠금 설정 메시지를 찾습니다. 첫 번째는 원하는 상태 정보를 얻습니다. 두 번째 항목은 반환될 수 있는 옵션을 설명합니다.
Re: 테이블이 읽기 전용인지 확인하십시오.좀 더 명확히 하고 싶은데, 사용자에게 "I/O 문제입니다. 파일이 쓰기 모드에서 열리지 않습니다."
스크립트가 테이블을 저장하려고 할 때만 나타나므로 테이블 1과 2는 저장할 수 있지만 테이블 3은 저장하지 못하여 데이터 처리가 엉망입니다.
테이블을 저장하기 전에 쓰기 모드를 확인하는 것을 추가하고 싶습니다. 저는 JMP13을 사용하고 있습니다.