write문이 여섯개인데 결과에는 다섯개만 나와있네요.
다섯번째 move라인 값이 없어서 올려봅니다.
<SPAN>
<SPAN class=L1S52>MOVE</SPAN> F1 <SPAN class=L1S52>TO</SPAN> F2+<SPAN class=L1S52>O</SPAN>(L). <SPAN class=L1S52>WRITE</SPAN> / F2.<BR></SPAN>
결과는... __ABCD ("_"는 공백입니다.)
확인부탁드립니다.
댓글 5
-
e-abap
2008.07.08 04:04
-
e-abap
2008.07.08 04:05
결과도 다음과 같이 수정합니다.
ABCDEFG
CDE
BCDE
BC ABC
ABC
BCDE -
아밥또퍼
2008.07.14 20:03
수정해주신 소스로 다시 테스트 해봤습니다. 그런데 결과값이 틀리게 나옵니다.
교재에서 설명되어 있는 내용에 따른다면...
======================================================================================
"MOVE f1+3(3) TO f2.
(설명)
"구문의 결과 f2 필드는 f1 필드의 3번째 자리부터 3번째 자리까지의 DEF값을 가지게 된다." - page 130
======================================================================================
이렇게 되어있습니다.
일반적으로 생각하면 "A"가 첫번째 자리이기에 3번째 자리는 "C"가 됩니다.
그러면 "CDE"가 출력되어야 하는 것이지요. 하지만 SAP에서 카운팅되는건 "0"부터 되는듯 합니다.
그렇게 따져보면... "A"가 0번째 자리이기에 "D"가 3번째 자리가 되는것이지요.
직접 테스트해보니 결과가 아래와 같이 출력됩니다.
============================================================
MOVE F1 TO F2. WRITE / F2. ==> ABCDEFGH
MOVE F1+3(3) TO F2. WRITE / F2. ==> DEF
MOVE F1+O(L) TO F2. WRITE / F2. ==> CDEF
MOVE F1 TO F2+O(L). WRITE / F2. ==> CDABCD
CLEAR F2.
MOVE F1 TO F2+O(L). WRITE / F2. ==> __ABCD
MOVE F1+O(L) TO F2+O(L). WRITE / F2. ==> __CDEF
============================================================
뭐가 맞는건지 모르겠습니다. 확인 부탁드립니다.
-
V라인얼굴
2008.08.29 23:50
아직결과가 없네요.
초보자로서 이해가 안되는데요..
-
땡구리
2008.09.25 23:44
e-abap님의 결과가 맞습니다...수정된 소스 상으로 봤을때는요...
DATA : f1(8) VALUE ' ABCDEFGH ',
이 부분을 잘보면 A앞에 한칸 비어있고 H다음도 한칸 비어 있어요...
즉 F1에는 데이터가 ' ABCDEFG'까지만 들어가 있는것이지요...
그래서 결과가 저렇게 나옵니다.
그리고 자릿수 계산하는 방법이 다들 조금씩 차이가 있긴 하던데...
'ABC'를 예로 들면...
A가 0자리가 아니라...
A 앞이 0번째가 됩니다..
글로 표현하기가 좀 애매하네요..ㅋ
A앞이 0, AB사이가 1, BC사이가 2 ......
이런식으로 함 봐보세요...그러면
DATA : f1(8) VALUE ' ABCDEFGH '에 대한 F1+3(3)의
결과는 3에대한 것은 빈칸 앞이 0, 빈칸과A 사이가 1, AB사이가 2, BC사이가 3이되고
(3)에 대한 것은 BC사이가 3이니까 여기부터 CDE가 나오게 됩니다.
사람마다 해석하는게 조금씩 틀리지만...이런식으로 하면 다른것들도 결과에 맞습니다.
수정된 소스로만 설명한것이라서 만약에 'ABCDEFGH', 즉 교재의 설명부분으로 본다면
A앞이 0번째, AB사이가 1, BC사이가 2, CD사이가 3 이렇게 되어
결과는 DEF가 나오게 됩니다.
아밥또퍼님은 수정된소스의 앞뒤에 빈칸이 없다고 하여 테스트 하신것 같습니다.
소스를 다음과 같이 수정합니다.
REPORT Z03_021.
DATA : f1(8) VALUE ' ABCDEFGH ',
f2(8).
DATA : o TYPE i VALUE 2,
l TYPE i VALUE 4.
MOVE F1 TO F2. WRITE / F2.
MOVE F1+3(3) TO F2. WRITE / F2.
MOVE F1+O(L) TO F2. WRITE / F2.
MOVE F1 TO F2+O(L). WRITE / F2.
CLEAR F2.
MOVE F1 TO F2+O(L). WRITE / F2.
MOVE F1+O(L) TO F2+O(L). WRITE / F2.