2017-12-05 1 views
0

나는 작업중인 모듈에 열거 형 다중 값 특성이 있습니다. 내가 문자열을 인쇄하는 경우는 속성 열에 표시처럼""을 사용하여 문자열로 바뀐 다중 값 열거 형 사이의 새 줄을 읽는 방법

// as it appears in the attribute column 
val1 
vals-2 
vals3 
// below is what is written in my script to turn the contents this attribute 
// into a string (for this particular object) 
string ovp = o."AttribName" // I have assigned it to a string in this manner 

, 그것은, 열 형식으로 출력합니다 다음과 같이

모양이다. 이 줄에 새 줄이 어떻게 정의 되었습니까?

새 줄 정의를 사용하여 올바른 용어를 사용하지 않았으므로 각 열거 값을 문자열 배열 (문자열 arr [크기],)에 넣고 싶습니다.

나는 방법이있을 것이라고 확신하지만, DXL을 사용하는 데 불과 2 주 밖에 걸리지 않으며, 이것을 수행하는 방법을 잃어 버렸을 때 또는 더 쉽게 할 수있는 또 다른 방법이있을 때가 있습니다.
내가 아는 키워드로 검색 할 수 있습니다.

도움이나 방향에 대해 미리 감사드립니다. 나는 계속해서 노력할 것이고 내가 무엇을 생각해 내는지 볼 것이다. 나는 대답을 찾으면이 질문을 업데이트 할 수 있다고 가정합니다.

답변

1

그래서 속성 정의를 쿼리 한 다음 'isMember'함수를 사용하여이 작업을 수행하는 것이 더 좋은 방법 일 수 있습니다.하지만이 방법은 사용자가 요청한 문자열 배열을 반환합니다.

Object o = current 

string s = o."Test Enum" "" 

int x = 0 
int y = 0 
int size = 0 

if (s != "") { 
    size++ 
} 
for (x = 0 ; x < length (s) ; x++) { 
    if (s [ x ] == '\n') { 
     size++ 
    } 

} 
string arr[size] 
size = 0 
for (x = 0 ; x < length (s) ; x++) { 
    if (s [ x ] == '\n') { 
     arr[ size ] = s [ y : x - 1 ] 
     y = x + 1 
     size++ 
    } 
} 
arr[ size ] = s [ y : ] 

참고 - 먼저 배열 크기를 확인한 다음이를 정의합니다. 여러 개의 선택된 속성은 구분 기호로 '\ n'을 갖지만 마지막 항목에는 구분 기호가 없습니다.

+0

정말 고마워, 나는 개행에 대한 부울 체크가 '\ n'이지 "\ n"이 아니라는 것을 깨닫지 못했다. 내가 다르게 수행 한 것은 각 읽기 문자열을 임시 문자열에 할당하고 if (s [i] == '\ n')를 사용하여 배열의 위치를 ​​증가시키는 것입니다. 그러나 차이점은 배열의 크기가 모두 5 이하가 될 것이기 때문에 미리 배열 크기를 선언했다고 생각합니다. 나 for-loop를 여분으로 저장한다. –

1

내가 문자로 작동하는 방식은 Regexp를 사용하고 있습니다. 첫 번째로, 문자열 배열의 크기를 10으로 미리 선언했음을 알리고 싶습니다. 값의 집합이 최대 4를 넘지 않기 때문에이 값을 5로 줄일 수 있습니다. 그것이 요점의 옆에 있습니다, 이것은 내가 내 편지를 위해 일하는 것을 발견했습니다.

string ovs = o.vs "", ovp = o.vp "", tempstr = "" 
Regexp alphabet = regexp"[a-zA-Z]" 
int pp, i = 0 

for (pp = 0; pp <= length(ovs); pp++) { 
    if(alphabet ovs[pp]"") 
      tempstr = tempstr "" ovs[pp] "" 
    else { 
      vsstrarr[i] = tempstr ""; 
      i++; tempstr = "" 
    } 
} 

이 작업을 수행하지만, 여러 정규 표현식 변수가 아닌 알파벳이 아닌 '\ n'문자를 캡처하는 데 필요한 것 나도 몰라.

이것은 내가 중간에 생각해 낸 해결책 이었지만, 나는 Balthos의 대답을 우수하다고 받아들입니다.