Miscellaneous

본 장에서는 ProSort의 데이터 포맷과 상수 등의 갖가지 정보를 설명한다.

1. 데이터 포맷

다음은 ProSort의 데이터 포맷을 각각 설명한다.

  • CH

    문자열을 ASCII 코드 또는 EBCDIC 코드로 표현하는 데이터 포맷이다.

    • USE_CH_EBCDIC 파라미터에 설정한 값이 Y인 경우

      각각의 문자를 8bit EBCDIC 코드로 표현한다. 예를 들어 PS3은 D7E2F3 (Hexadecimal)로 표현된다.

    • USE_CH_EBCDIC 파라미터에 설정한 값이 N인 경우

      각각의 문자를 ASCII 코드로 표현한다. 예를 들어 PS3은 505333 (Hexadecimal)으로 표현된다.

  • TP

    숫자를 10진수 ASCII 코드로 표현하는 데이터 포맷이다. 부호는 마지막 byte에 포함된다.

    • USE_ALTERNATIVE_TP_TYPE 파라미터에 설정한 값이 Y인 경우

      마지막 byte는 다음과 같이 변환된다.

      부호 설명

      양수

      • 변환 방법

        '0'→'0', '1'→'1', '2'→'2', '3'→'3', '4'→'4', '5'→'5', '6'→'6', '7'→'7', '8'→'8', '9'→'9'

      예를 들어 123은 123으로 표현된다.

      음수

      • 변환 방법

        '0'→'}', '1'→'J', '2'→'K', '3'→'L', '4'→'M', '5'→'N', '6'→'O', '7'→'P', '8'→'Q', '9'→'R'

      예를 들어 -123은 12L로 표현된다.

    • USE_ALTERNATIVE_TP_TYPE 파라미터에 설정한 값이 N인 경우

      마지막 byte는 다음과 같이 변환된다.

      부호 설명

      양수

      • 변환 방법

        '0'→'{', '1'→'A', '2'→'B', '3'→'C', '4'→'D', '5'→'E', '6'→'F', '7'→'G', '8'→'H', '9'→'I'

      예를 들어 123은 12C로 표현된다.

      음수

      • 변환 방법

        '0'→'}', '1'→'J', '2'→'K', '3'→'L', '4'→'M', '5'→'N', '6'→'O', '7'→'P', '8'→'Q', '9'→'R'

      예를 들어 -123은 12L로 표현된다.

  • ZD

    숫자를 10진수 ASCII 코드로 표현하는 데이터 포맷이다. 부호는 마지막 byte에 포함된다.

    마지막 byte는 다음과 같이 변환된다.

    부호 설명

    양수

    • 변환 방법

      '0'→'0', '1'→'1', '2'→'2', '3'→'3', '4'→'4', '5'→'5', '6'→'6', '7'→'7', '8'→'8', '9'→'9'

    예를 들어 123은 "123"으로 표현된다.

    음수

    • 변환 방법

      '0'→'p', '1'→'q', '2'→'r', '3'→'s', '4'→'t', '5'→'u', '6'→'v', '7'→'w', '8'→'x', '9'→'y'

    예를 들어 -123은 "12s"로 표현된다.

  • PD

    숫자를 각 자릿수마다 4bit씩 사용하여 표현하는 데이터 포맷이다. 부호는 별도의 니블(nibble, 4bit)로 마지막에 표현된다.

    ZD는 각 자릿수마다 1byte를 사용하여 숫자를 표현하지만, PD는 ZD보다 2배 정도가 적은 공간으로 숫자를 표현한다. 이러한 특성 때문에 packed decimal이라 부른다.

    각 byte는 다음과 같이 니블로 변환된다.

    '0'→X'0', '1'→X'1', '2'→X'2', '3'→X'3', '4'→X'4', '5'→X'5',
     '6'→X'6', '7'→X'7', '8'→X'8', '9'→X'9'

    마지막에는 다음과 같이 니블이 별도로 추가된다.

    부호 설명

    양수

    • 변환 방법

      X'C'

    예를 들어 123은 123C (Hexadecimal)로 표현된다.

    음수

    • 변환 방법

      X'D'

    예를 들어 -123은 123D (Hexadecimal)로 표현된다.

  • FI

    고정 소수점 표현법(fixed-point representation system)을 사용하여 숫자를 표현하는 데이터 포맷이다. 최상위 bit에 부호가 포함된다.

    부호 설명

    양수

    • 변환 방법

      0

    예를 들어 +247은 00F7 (Hexadecimal)로 표현된다.

    음수

    • 변환 방법

      1

    음수 값은 2의 보수로 표현된다. 예를 들어 -247은 FF09 (Hexadicimal)로 표현된다.

  • BI

    부호 없는 이진수로 숫자를 표현하는 데이터 포맷이다. 임의의 비트 패턴으로 구성된다.

  • AC

    각각의 문자를 ASCII 코드로 표현하는 데이터 포맷이다. 예를 들어 PS3은 505333 (Hexadecimal)로 표현된다.

  • EC

    각각의 문자를 8bit EBCDIC 코드로 표현하는 데이터 포맷이다. 예를 들어 PS3은 D7E2F3 (Hexadecimal)로 표현된다.

데이터 포맷의 예

다음은 ZD 포맷 코드를 통해 '-247'를 표현하는 예이다.

2

4

7

Decimal

F2

F4

D7

Hexadecimal

11110010

11110100

11010111

Binary

다음은 ZD 포맷 코드를 통해 '+247'를 표현하는 예이다.

F2

F4

C7

11110010

11110100

11000111

다음은 PD 포맷 코드를 통해 '-247'를 표현하는 예이다.

2

4

7-

Decimal

2

4

7D

Hexadecimal

0010

0100

01111101

Binary

+246은 hexadeimal로 247C가 된다.

2. 비교 필드의 포맷 및 길이 제한

포맷 코드 길이 제한 설명

ZD

64bytes

Signed zoned decimal

PD

64bytes

Signed packed decimal

FI

64bytes

Signed fixed point

BI

64bytes

unsigned binary

AC

64bytes

ASCII character

EC

64bytes

EBCDIC character

3. 상수

다음은 ProSort에서 사용할 수 있는 상수(Constant)이다.

  • Decimal Number

    xxxxx와 같은 형태이며, 다음과 같이 숫자로 정의한다.

    100, 1000, 2345
  • Character String Format

    C’xxx…​x’와 같은 형태이며, 다음과 같이 문자로 정의한다.

    C'ASDF', C'Test'
  • Hexadecimal String Format

    X’yy…​yy’와 같은 형태이며, 다음과 같이 헥사 문자열로 정의한다.

    X'ABCD', X'BF3C', X'AF050505', X'BF3C'

4. Edit Mask Patterns

Pattern은 다음과 같은 속성이 있다.

속성 설명

I

insignificant digit로, 0이면 출력되지 않는다.

T

significant digit로, 0이어도 출력된다.

CR

M3인 경우에만 정의할 수 있다.

음수이면 출력되고, 음수가 아니면 2개의 blank가 출력된다.

S

sign 기호(+/-)를 나타낸다.

다음은 예제 값을 통해 각 Edit Mask Patterns를 실행한 결과이다.

Mask Pattern 예제 값 실행 결과

M0

IIIIIIIIIIIIIITS

+01234

1234

-00001

1-

M1

TTTTTTTTTTTTTTTS

-00123

00123-

+00123

00123

M2

I,III,III,III,IIT.TTS

+123450

1,234.50

-000020

0.20-

M3

I,III,III,III,IIT.TTCR

-001234

12.34CR

+123456

1,234.56

M4

SI,III,III,III,IIT.TT

+0123456

+1,234.56

-1234567

-12,345.67

M5

SI,III,III,III,IIT.TTS

-001234

(12.34)

+123450

1,234.50

M6

III-TTT-TTTT

00123456

012-3456

12345678

1-234-56788

M7

TTT-TT-TTTT

00123456

000-12-3456

12345678

012-34-5678

M8

IT:TT:TT

030553

3:05:53

121736

12:17:36

M9

IT/TT/TT

123094

12/30/94

083194

8/31/94

M10

IIIIIIIIIIIIIIT

01234

1234

00000

0

M11

TTTTTTTTTTTTTTT

00010

00010

01234

01234

M12

SIII,III,III,III,IIT

+1234567

1,234,567

-0012345

-12,345

M13

SIII.III.III.III.IIT

+1234567

1.234.567

-0012345

-12.345

M14

SIII III III III IITS

+1234567

1 234 567

-0012345

(12 345)

M15

III III III III IITS

+1234567

1 234 567

-0012345

12 345-

M16

SIII III III III IIT

+1234567

1 234 567

-0012345

-12 345

M17

SIII’III’III’III’IIT

+1234567

1’234’567

-0012345

-12’345

M18

SI,III,III,III,IIT.TT

+0123456

1,234.56

-1234567

-12,345.67

M19

SI.III.III.III.IIT,TT

+0123456

1.234,56

-1234567

-12.345,67

M20

SI III III III IIT,TTS

+0123456

1 234,56

-1234567

(12 345,67)

M21

I III III III IIT,TTS

+0123456

1 234,567

-1234567

12 345,67-

M22

SI III III III IIT,TT

+0123456

1 234,56

-1234567

-12 345,67

M23

SI’III’III’III’IIT.TT

+0123456

1’234.56

-1234567

-12’345.67

M24

SI’III’III’III’IIT,TT

+0123456

1’234,56

-1234567

-12’345,67

M25

SIIIIIIIIIIIIIIT

+01234

1234

-00001

-1

M26

STTTTTTTTTTTTTTT

1234

+01234

-1

-00001