2011-03-21 3 views
0

위의 MUMPS 문에서 두 S의 의미는 무엇입니까? 위의 MUMPS 문에서 두 가지 S의 의미는 무엇입니까?MUMPS 문의 문의

답변

1

이 꽤 이상한이지만, 내가 일이 벌어지고 생각하는 것은 : 당신이 할당하고 값과 전체 문자열을 대체 할 두 번째 인수에 널 (null)와 $ 조각을 호출

I $P(GIH,<null>,24)=<null> 

이에있는, 대/소문자도 null입니다. 이것은 GIH의 값을 지우고 제어가 다음 SET 문으로 흘러가도록 허락하는 복잡한 방식처럼 보입니다. 나는 $ PIECE가 $ T 플래그를 설정한다는 것을 심각하게 의심합니다. 이것은 IF 연산자의 조건으로 이것을 호출하는 것이 아마 당신이 원하는 방식으로 작동하지 않는다는 것을 의미합니다.

S $P(GIH,,24)="C" 

다음 문장은 GIH 전체를 "C"로 대체합니다.

S 

나는 마지막 SET가 유효한 MUMPS라고 생각하지 않습니다. 이 다음과 같이 기록되지 왜

는 나를 넘어 : 도움이

s GIH="C" 

희망!

1

아마도 Intersystems Caché는이 구문을 다르게 처리하지만 Caché에서이 구문을 사용하면 구문 오류가 발생합니다. 그것이 유효한 MUMPS의 다른 버전이 있을지 모르지만 나는 그것이라고 생각하지 않습니다.

2

원본 문장이 Standard MUMPS 또는 InterSystems Cache가 아니거나 GT.M 코드가 아닙니다. 원래 의미가 무엇인지를 광범위하게 추측하더라도 라인의 마지막 S는 MUMPS에서 수행 할 작업이 아닙니다. 하나의 S는 SET 명령 일 수 있지만 할당 할 수있는 변수 나 할당 할 값을 알려주는 인수는 여전히 없습니다.

나머지 답변은 의미가 무엇인지 파악하려고합니다.

일부 소프트웨어에서 질문이 잘못되었습니다.

나는 보았다 : 하나에 유래 또는 잘라 내기 및 붙여 넣기 과정에서 해당 여기를 넣어

I $ P (GIH,, 24) = S $ P (GIH,, 24) = "C "S

위의 MUMPS 문에서 두 가지 S의 의미는 무엇입니까?

인용문의 위치와 질문의 전송으로 인해 삭제 될 수있는 가설이 필요하므로 의미가 무엇인지 파악하기가 어렵습니다.

우선 무엇보다 합리적이라고 생각해 봅시다. $ P는 일반적으로 내장 (내장) 함수 $ PIECE의 약자입니다. 내가 혼자 서있는 것은 IF 명령 인 것일 수도있다. S는 아마도 SET 명령 일 것이다. MUMPS 코드 라인의 형식이 COMMAND COMMAND-ARGUMENT이기 때문에 이것은 당신의 예제에서 문제가된다.

참고 : 또한 "꺾쇠 괄호"에 COMMAND-ARGUMENT 텍스트를 넣으려고했습니다. 예 : 단어의 시작 부분에 소문자가 있고 끝에 문자가 큼. 텍스트 COMMAND-ARGUMENT이 방금 사라졌습니다. 즉, stackoverflow는이를 HTML 마크 업으로 간주합니다.나는이 편집 창 상단에 코드 표식이 있다는 것을 알아 차릴 수도 있고 그렇지 않을 수도 있습니다. 우리는 위의 코드로 확장 할 경우

, 우리가 얻을 :

$ 피스 (GIH,, 24) = SET의 $의 PIECE (GIH,, 24) = "C"로 설정하면

때 우리는 최종 S를 확장하지만 SET 명령처럼 보이지만 set-argument는 없다.

캐시 시스템에있는 경우 캐시에서 허용하는 여분의 공백 예가 표준 MUMPS에서 허용되지 않습니다. 예를 들어 S가 표준 MUMPS에서 등호 연산자의 오른쪽이었을 수 있습니다. IF 명령. 캐시가 SET 명령의 인수가 실제 SET 명령없이 코드에 있도록 허용 한 경우에만 의미가 있습니다. 예 :

$ 피스 (GIH,, 24) = S의 $의 PIECE (GIH,, 24) = "C"는

우리는 여전히에 대한 행에 두 개의 쉼표를 처리해야 할 것입니다 설정 한 경우 $ PIECE 내장 함수. 현재 행에서 두 개의 쉼표를 사용하여 누락 된 인수를 나타내는 것은 프로그래머 작성 코드에서만 허용되며 내장 함수를 사용하는 경우에는 허용되지 않습니다. 그래서 이것은 여러분이 의미하거나 원래 붙여 넣었던 것을 짐작할 수있는 곳일 수 있습니다.

큰 따옴표를 넣으면 $ PIECE 명령 (구분 기호를 기준으로 문자열을 구분)이 실행됩니다. 두 번째 인수로 주어진 길이가 0 인 인용 문자열. 빈 인수가있는 것만 큼 잘못된 것입니다. 우리는 꺾쇠 괄호가있는 인용 문자열을 가정 할 경우

그래서, 우리는 원래의 라인 뭔가이 얻을 것이다 :

IF $PIECE(GIH,"<something>",24)="<something>" SET $PIECE(GIH,"<something>",24)="C" SET

참고 : 난 그냥 코드 마커 무덤 악센트의 사용을 유지할 수 있습니다 보았다 라인이 HTML이라고 가정하는 것 - 무덤 악센트는 MUMPS 코딩에서 사용 된 문자가 아니기 때문에 좋은 것입니다.

다른 답장에서 언급했듯이 SET- $ PIECE-ARGUMENT 양식은 구분 된 부분 문자열 위치에서 데이터베이스에 저장된 데이터를 변경하는 데 사용됩니다.

이 코드는 추측하기에 좋을 수도 있지만 수행 한 적이 있거나 수행하지 않았을 수도 있습니다. 그래서 우리가 이것이 당신이 원한 것에 가깝다는 피드백을 얻을 때까지 지금 멈추고 있습니다. 처음에 말했듯이 이것은 아직 유효한 코드가 아닙니다.