2011-11-10 4 views
4

RPGLE에서 문자의 길이와 변수를 직접 반환하는 쉬운 방법이 있습니까? 여기서 말하는 길이는 D 스펙에 지정된 길이가 아닙니다. 의미있는 문자의 실제 개수에 대해 이야기하고 있습니다. 문자 유형 변수의 길이가 50 자이고 'Hello world!'값으로 지정되었다고 가정하면, 원하는 길이는 'H'에서 '!'까지 12입니다. 선행 공백과 후행 공백은 무시됩니다. 이 작업을 수행하는 간단한 방법이 있습니까?RPGLE에서 문자 유형 변수의 길이를 얻는 방법은 무엇입니까?

답변

11

%len(%trimr(field))을 사용할 수 있습니다. 길이를 확인하기 전에 후행 공백을 잘라냅니다.

  • %triml 트림 최고의
  • %trimr 트림이 (오른쪽) 후행 공백을
  • %trim 트림은 선행 및 후행 공백이
8

그것은 당신이하려고하는 필드처럼 보이는 (왼쪽) 공간 길이가 고정 문자 필드인지 확인하려면

 dmsg    s    40a 

우리가 eval을하는 경우 msg = 'Hello, World!' msg에는 'Hello, World!'가 포함되지 않습니다. - 'Hello, World!'가 포함되어 있습니다. '즉, 40 자까지 채울 빈 더미가 있습니다. 고정 길이 필드가 정의에 따라 작동하는 방식입니다.

trimr()은 이들과 함께 잘 작동 할 수 있으며 트리밍해야 할 문자를 정의하는 선택적 매개 변수도 있습니다. 당신이 변화하는 길이 필드

 dmsg    s    40a Varying 

을 사용했고, 다음 평가 후면 MSG =했다면 한편

, '안녕하세요, 세상을!' 필드에는 실제로 할당 된 문자 만 포함됩니다. 이 경우에는 % trimr()이 필요하지 않습니다. % len()은 필드의 현재 길이를 반환합니다.