에 변수를 트리밍?당신이 CLLE에서 변수를 손질 수있는 방법 CLLE
답변
표준 기능 TRIM은 CLLE에 사용할 수 없습니다. 그러나
- 두 개의 변수를 접착제하려면 후 *의 TCAT (| < 또는)를 봐주세요. 이 명령은 사이의 공백을 제거합니다 (예 : 'XYZ'* TCAT 'UVW'는 'xyzuvw'
- 당신이 정말로 다음 '' '* TCAT의 $ YOURVAR의 *의 TCAT'을 시도 트림하려면된다 (이 하나를 시도 할 수 나 자신으로 지금/400 집에서 ...)
- 또는 ILE CL로 작업한다는 사실을 사용하십시오. CALLPRC 명령을 사용하여 트릭을 수행 할 수있는 모듈을 호출 할 수 있습니다. ILE RPG 또는 COBOL 자신을 모듈. CL의 모든 변수는 길이가 고정되어 있기 때문에
, 자체 트림 논리적 인 요구 사항이 없습니다.
하는 JO하기 중간에 공백이없는 두 값으로 |<
연산자를 사용하고 단일 공백을 포함하려면 |>
을 사용하십시오.
DCL &LEN *DEC (15 0)
DCL &VAL *CHAR 50 VALUE('Some test data')
DCL &CHR15 *CHAR 15
CHGVAR &LEN 50
LOOP: IF (&LEN > 1 & %SST(&VAL &LEN 1)==' ') (DO)
CHGVAR &LEN VALUE(&LEN - 1)
GOTO LOOP
ENDDO
CHGVAR &CHR15 &LEN
SNDPGMMSG ('The length is' |> &CHR15) /* Can't concat decimal values */
단순히 널 종료, 예를 들어, C 함수를 호출 할 값을 :
DCL &VAL *CHAR 50 VALUE('Some test text')
DCL &VALNUL *CHAR 51 /* +1 for the null */
DCL &NULL *CHAR 1 VALUE(X'00')
CHGVAR &VALNUL VALUE(&VAL |< &NULL)
편집을 2012-07-19 *
일부 문자 집합에서는 대신 !
이 사용됩니다. 대신 사용할 수있는 CCSID 독립 * CAT 조작이 있습니다. IBM 웹 사이트 here 및 here을 참조하십시오.
해당 운영자가 어떤 버전을 발표 했습니까? 연산자'| <' and '|>'이 V6R1에서 작동하지 않습니다. 문자'|'는 모든 EBCDIC 코드 페이지에서 같은 위치에 있지 않기 때문에 필자는 어쨌든'* TCAT '대신에 그 문자를 사용하는 것이 좋습니다. – kratenko
@kratenko : 편집을 참조하십시오. 적어도 V3 이상이되었으므로 V1 이후로 내기를했습니다. –
다양한 연산자는 System/38 (AS/400 시리즈의 전신) 이후로 사용되었습니다. i 6.1 문서의 경우 ** 표현식의 연산자 ** [링크] (http://pic.dhe.ibm.com/infocenter/iseries/v6r1m0/index.jsp?topic=/rbam6/rbam6opsinexp.htm) 주제를 참조하십시오. . 주어진 시스템에서 작동하지 않으면 문제는 거의 잘못 구성된 장치 설명 일 수 있습니다. KBDTYPE() 및/또는 CHRID() 특성이 시스템 구성과 일치하지 않는 것 같습니다. – user2338816
나는이 오래 알고,하지만 당신은 ILE CL 사용할 수
%의 TRIM() %의 TRIML()와 % TRIMR() 이전 릴리스에서는이 가능했던 %의 TRIM (& 인 myVariable)를 사용할 수 있습니다 ' triml 'C 라이브러리 기능 : PROC는 * SRVPGM QC2UTIL1에서 발견
dcl &lPath *int value(0)
callprc 'triml' (+
&Dir +
(' ' *byval) +
) +
rtnval(&lPath)
. OPM과 ILE CL 모두에서
는, 내가 자주 사용했습니다 두 경우 모두dcl &lmsgtxt1 *dec ( 5 0) value(0)
rtvmsg msgid(cpf9897) msgf(QSYS/QCPFMSG) +
msgdta(&SQLStm) +
msglen(&lmsgtxt1)
는, 결과의 길이는 실제 트리밍 효과에 %의 SST() 표현식에 사용할 수 있습니다.
- 1. WCF에서 손질 된 서비스를 만드는 방법
- 2. 당신이 기여할 수있는 프로젝트가 있습니까?
- 3. 나사로 0.9.30 메뉴 항목을 손질
- 4. 당신이
- 5. 당신이
- 6. 당신이
- 7. 매개 변수를 생략 할 수있는 방법이 있습니까?
- 8. 당신이 유물
- 9. 내가 카드 (당신이 말할 수있는 플래시 카드)가 UIView의
- 10. 당신이 CSS를 정의하는 곳
- 11. 당신이 C#
- 12. 당신은 당신이
- 13. 당신이 경우
- 14. SQL - 당신이 게시 №1 블로거를 볼 수있는 또 다른 테이블에서
- 15. IE 바로 재산 떨어져 페이지 - 당신이 볼 수있는 수직 스크롤
- 16. 액션 메소드의 매개 변수를 모델 클래스로 만들 수있는 방법
- 17. 부모의 창에서 iframe의 javascript 변수를 인용 할 수있는 방법
- 18. PHP에서 모든 세션에 사용할 수있는 변수를 저장하는 가장 좋은 방법
- 19. 변수를 설정하지 않고 perl 인라인 정규식을 수행하는 방법은 무엇입니까? 당신이 정규식 변수를 변경하려면
- 20. 블로 브 크기를 얻는 방법? 당신이 당신의 질문이의 전혀 표시를주지 비록 당신이 코멘트에 표시하는 것 당신이 (장고 템플릿을 사용하는 경우
- 21. 그런데 당신이 app.config?
- 22. 특별한 방법 의심 ... 내가 ... 방법은 당신이 설명 할 수있는 몇 가지 방법에 의문을하시기 바랍니다 있습니다 ....
- 23. 로컬 방법 내에서 로컬 범위 변수에 다음 당신이 할 수있는 자바에서는 SQL
- 24. 방법 조치 방법 또는 당신이 그것을 필요로 위상 리스너에 넣고
- 25. appDelegate 변수를 해제하는 방법
- 26. 루비에서 모든 변수를 얻을 수있는 방법이 있나요?
- 27. 게시 매개 변수를 설정할 수있는 방법이 있습니까?
- 28. 변수를 광범위하게 사용할 수있는 장고 옵션
- 29. 에서는 C++로 밀리의 시간을 얻기 위해 당신이 할 수있는 자바에서 자바
- 30. 변수를 증가시키고 이전 변수를 덮어 쓰는 방법?
당신이 필요로하는 경우에, 나는 당신에게 RPG의 예를 제공 할 수 있습니다. RPG는 iSeries에서 선호하는 언어입니다. – robertnl
\ * TCAT는 연산자 왼쪽에있는 피연산자의 후행 공백을 제거합니다. 오른쪽 피연산자의 주요 블랭크 [부호화 심지어 CPD0126 당 리터럴 스트링으로 허용 빈 문자열마다, 지원되지 않는 제 2 실시 예 발현 따라서 효과 :-(박리되지 않는 일치 할 TRIM이 아닌 TRIMR의 효과 [처음으로 수정 된 경우, 빈 리터럴을 사용합니다.그리고 그것을 강조하기 위해 첫 번째 예제 표현은 * 공백을 제거하지 않습니다. 일반적으로''xyz ''에서 공백을 하나만 제거합니다. ''xyz '* TCAT'uvw'''는''xzy uvw''가됩니다. – CRPence