gdxxrw13.gms : 슬롯 사이트 - Set Elements를 읽거나 쓸 때 값 옵션 테스트

설명

이 모델은 "데이터 또는 텍스트와 관련된 읽기 세트 요소"를 확장하고
슬롯 사이트 문서의 "스프레드시트에 쓰기 설정" 예, 즉
값 옵션을 사용하여 요소를 스프레드시트에서 읽거나 씁니다.
결과는 나중에 확인됩니다.

기고자: Jan-Erik Justkowiak, 2018년 9월

소형 모델 유형 :슬롯 사이트


카테고리 : 슬롯 사이트 테스트 라이브러리


메인 파일 : gdxxrw13.gms

$title GDXXRW - Set Elements를 읽거나 쓸 때 값 옵션 테스트(GDXXRW13,SEQ=782)

$onText
이 모델은 "데이터 또는 텍스트와 관련된 읽기 세트 요소"를 확장하고
GDXXRW 문서의 "스프레드시트에 쓰기 설정" 예, 즉
값 옵션을 사용하여 요소를 스프레드시트에서 읽거나 씁니다.
결과는 나중에 확인됩니다.

기고자: Jan-Erik Justkowiak, 2018년 9월
$offText

$callTool win32.msappavail Excel
$if errorlevel 1 $abort.noError "사용 가능한 Excel이 없습니다."

* 스프레드시트에 세트 요소 쓰기
세트
   oneDim / a '예', b '1', c '0', d '아니요', e '123', f '예', g 'NO', h 'TRUE', i 'FALSE', j, k 'hello', l 'N', m 'Y' /
   twoDim / I.a '예', II.a '1', I.b '0', II.b '아니요', I.c '123', II.c '예', I.d 'NO', II.d 'TRUE', I.e 'FALSE', II.e, I.f 'hello', II.f 'N', I.g 'Y' /;

$gdxOut 출력.슬롯 사이트
$unLoad oneDim twoDim
$슬롯 사이트아웃

$onEcho >howToWrite.txt
설정=oneDim rng=A2 cDim=1 값=자동
set=oneDim rng=A6 cDim=1 값=noData
설정=oneDim rng=A9 cDim=1 값=YN
set=oneDim rng=A13 cDim=1 값=문자열
설정=twoDim rng=A17:H19 cDim=1 rDim=1 값=자동
set=twoDim rng=A22:H24 cDim=1 rDim=1 값=noData
설정=twoDim rng=A27:H29 cDim=1 rDim=1 값=YN
set=twoDim rng=A32:H34 cDim=1 rDim=1 값=문자열
$offEcho

$call gdxxrw out.슬롯 사이트 출력=testWritingValues.xlsx @howToWrite 추적=0
$ifE errorLevel<>0 $abort 스프레드시트에 쓰는 동안 오류가 발생했습니다!

* 결과는 공식을 사용하여 Excel 내에서 확인됩니다.
* 현재 테스트 중인 GDXXRW 값 기능을 사용하고 싶지 않습니다.
* 스프레드시트를 읽어 결과를 확인합니다.
* 대신 수식(부울: 1-올바름, 0-오름)의 결과를 읽고 확인합니다!
$onEcho >howToRead.txt
par=oneDimAutoS rng=A1 희미=0
par=oneDimNoDataS rng=A5 희미=0
par=oneDimYNS rng=A8 희미=0
par=oneDimStringS rng=A12 희미=0
par=twoDimAutoS rng=A16 희미함=0
par=twoDimNoDataS rng=A21 희미=0
par=twoDimYNS rng=A26 희미함=0
par=twoDimStringS rng=A31 희미=0
$offEcho

$call gdxxrw testWritingValues.xlsx @howToRead.txt 추적=0
$ifE errorLevel<>0 $abort testWritingValuesC.xlsx에서 플래그를 읽는 동안 오류가 발생했습니다!

* 예상되는 결과
스칼라
   oneDimAutoS / 1 /
   oneDimNoDataS / 1 /
   oneDimYNS / 1 /
   oneDimStringS / 1 /
   twoDimAutoS / 1 /
   twoDimNoDataS / 1 /
   twoDimYNS / 1 /
   twoDimStringS / 1 /;

$gdxOut 제어데이터.슬롯 사이트
$unLoad oneDimAutoS oneDimNoDataS oneDimYNS oneDimStringS twoDimAutoS twoDimNoDataS twoDimYNS twoDimStringS
$슬롯 사이트아웃

* 결과 확인
$call gdxdiff controlData.슬롯 사이트 testWritingValues.슬롯 사이트 > %system.nullfile%
$ifE errorLevel<>0 $abort 스프레드시트에 쓴 후 데이터가 올바르지 않습니다!
*------------------------------------------------------------------

* 스프레드시트에서 세트 요소 읽기
* 참고: 현재 스프레드시트에 이미 기록된 데이터가 정확하므로,
* 테스트를 위해 testWritingValuesC.xlsx의 일부 특정 데이터를 사용합니다.
* 스프레드시트에서 읽을 때 값 옵션!

$onEcho >howToRead.txt
* 처음에는 value=auto (범위에 따라 valueType이 다름)
* 및 희미한 사양)!
설정=oneDimAutoTopLeftCorner rng=A2 cDim=1 값=자동
설정=twoDimAutoTopLeftCorner rng=A32 cDim=1 rDim=1 값=자동
설정=oneDimAutoBlockEmptyData rng=A6:M7 cDim=1 값=자동
설정=twoDimAutoBlockEmptyData rng=A22:H24 cDim=1 rDim=1 값=자동
설정=oneDimAutoBlockNonEmptyData rng=A2:M3 cDim=1 값=자동
설정=twoDimAutoBlockNonEmptyData rng=A32:H34 cDim=1 rDim=1 값=자동

* 값=데이터 없음
설정=oneDimNoData rng=A2:M3 cDim=1 값=noData
설정=twoDimNoData rng=A32:H34 cDim=1 rDim=1 값=noData

* 값=희소
set=oneDimSparse rng=A2:M3 cDim=1 값=sparse
set=twoDimSparse rng=A32:H34 cDim=1 rDim=1 값=sparse

* 값=밀도
set=oneDimDense rng=A2:M3 cDim=1 값=dense
set=twoDimDense rng=A32:H34 cDim=1 rDim=1 값=dense
$offEcho

$call gdxxrw testWritingValues.xlsx 출력=testReadingValues.슬롯 사이트 @howToRead.txt 추적=0
$ifE errorLevel<>0 $abort testWritingValuesC.xlsx에서 설정 요소를 읽는 동안 오류가 발생했습니다!

* 예상되는 결과
세트
   oneDimAutoTopLeftCorner / a '예', b '1', c '0', d '아니요', e '123', f '예', g 'NO', h 'TRUE', i 'FALSE', j, k 'hello', l 'N', m 'Y' /
   twoDimAutoTopLeftCorner / I.a, I.c, I.e, I.f, I.g, II.a, II.c, II.d /
   oneDimAutoBlockEmptyData / a, b, c, d, e, f, g, h, i, j, k, l, m /
   twoDimAutoBlockEmptyData(*,*)
   oneDimAutoBlockNonEmptyData / a '예', b '1', c '0', d '아니요', e '123', f 'YES', g 'NO', h 'TRUE', i 'FALSE', j, k 'hello', l 'N', m 'Y' /
   twoDimAutoBlockNonEmptyData / I.a, I.c, I.e, I.f, I.g, II.a, II.c, II.d /
   oneDimNoData / a, b, c, d, e, f, g, h, i, j, k, l, m /
   twoDimNoData / I.a, I.b, I.c, I.d, I.e, I.f, I.g, II.a, II.b, II.c, II.d, II.e, II.f, II.g /
   oneDimSparse / a '예', b '1', c '0', d '아니요', e '123', f 'YES', g 'NO', h 'TRUE', i 'FALSE', k 'hello', l 'N', m 'Y' /
   twoDimSparse / I.a '예', II.a '1', I.b '0', II.b '아니요', I.c '123', II.c 'YES', I.d 'NO', II.d 'TRUE', I.e 'FALSE', I.f 'hello', II.f 'N', I.g 'Y' /
   oneDimDense / a '예', b '1', c '0', d '아니요', e '123', f '예', g 'NO', h 'TRUE', i 'FALSE', j, k 'hello', l 'N', m 'Y' /
   twoDimDense / I.a '예', II.a '1', I.b '0', II.b '아니요', I.c '123', II.c '예', I.d 'NO', II.d 'TRUE', I.e 'FALSE', II.e, I.f 'hello', II.f 'N', I.g 'Y', II.g /;

$gdxOut 제어데이터.슬롯 사이트
$unLoad oneDimAutoTopLeftCorner twoDimAutoTopLeftCorner oneDimAutoBlockEmptyData twoDimAutoBlockEmptyData oneDimAutoBlockNonEmptyData twoDimAutoBlockNonEmptyData oneDimNoData twoDimNoData oneDimSparse twoDimSparse oneDimDense twoDimDense
$슬롯 사이트아웃

* 결과 확인
$call gdxdiff controlData.슬롯 사이트 testReadingValues.슬롯 사이트 > %system.nullfile%
$ifE errorLevel<>0 $abort 스프레드시트에서 세트 요소를 읽은 후 데이터가 올바르지 않습니다!