다음을 통해 공유


GET_CP_CONVERT_TABLE

GET_CP_CONVERT_TABLE 동사는 256 바이트 변환 테이블을 만들어 반환하여 소스 코드 페이지에서 대상 코드 페이지로 문자열을 변환합니다.

다음 구조체는 GET_CP_CONVERT_TABLE 동사에서 사용하는 VCB(동사 제어 블록)를 설명합니다.

구문

  
struct get_cp_convert_table {  
    unsigned short       opcode;  
    unsigned char        opext;  
    unsigned char        reserv2;  
    unsigned short       primary_rc;  
    unsigned long        secondary_rc;  
    unsigned char        reserv3[8];  
    unsigned short       source_cp;  
    unsigned short       target_cp;  
    unsigned char FAR *  conv_tbl_addr;  
    unsigned char        char_not_fnd;  
    unsigned char        substitute_char;  
};  

구성원

opcode
제공된 매개 변수입니다. 작업 코드를 식별하는 동사 SV_GET_CP_CONVERT_TABLE입니다.

opext
예약된 필드입니다.

reserv2
예약된 필드입니다.

primary_rc
반환된 매개 변수입니다. 동사를 완료할 때 APPC에서 설정하는 기본 반환 코드를 지정합니다. 유효한 반환 코드는 발행된 APPC 동사에 따라 다릅니다. 이 동사의 유효한 오류 코드는 반환 코드를 참조하세요.

secondary_rc
반환된 매개 변수입니다. 동사를 완료할 때 APPC에서 설정하는 보조 반환 코드를 지정합니다. 유효한 반환 코드는 발행된 APPC 동사에 따라 다릅니다. 이 동사의 유효한 오류 코드는 반환 코드를 참조하세요.

reserv3
예약된 필드입니다.

source_cp
제공된 매개 변수입니다. 문자를 변환할 소스 코드 페이지를 지정합니다. 허용되는 코드 페이지(10진수 값)는 다음과 같습니다.

  • ASCII 437, 850, 860, 863, 865

  • EBCDIC 037, 273, 277, 278, 280, 284, 285, 297, 500

65280~65535 범위의 사용자 정의 코드 페이지도 허용됩니다.

ASCII 코드 페이지는 PC 코드 페이지라고도 하고, EBCDIC 코드 페이지는 호스트 코드 페이지라고도 합니다.

target_cp
제공된 매개 변수입니다. 문자를 변환할 대상 코드 페이지를 지정합니다. 허용되는 코드 페이지는 위의 source_cp에 대한 정의를 참조하세요.

conv_tbl_addr
제공된 매개 변수입니다. 256바이트 변환 테이블을 포함하는 버퍼의 주소를 지정합니다. 버퍼는 쓰기 가능한 세그먼트에 있어야 하며 테이블을 포함하기에 충분히 길어야 합니다.

char_not_fnd
제공된 매개 변수입니다. 소스 코드 페이지의 문자가 대상 코드 페이지에 없는 경우 수행할 동작을 지정합니다.

  • 변환 테이블에서 각 소스 코드 페이지 문자에 고유한 값을 저장하려면 SV_ROUND_TRIP을 사용합니다.

  • 변환 테이블에서 대체 문자(substitute_char로 지정됨)를 저장하려면 SV_SUBSTITUTE를 사용합니다.

substitute_char
제공된 매개 변수입니다. 소스 코드 페이지의 문자가 대상 코드 페이지에 없는 경우 변환 테이블에 저장할 문자를 지정합니다.

반환 코드

SV_OK
기본 반환 코드입니다. 동사가 성공적으로 실행되었습니다.

SV_PARAMETER_CHECK
기본 반환 코드입니다. 매개 변수 오류로 인해 동사가 실행되지 않았습니다.

SV_INVALID_CHAR_NOT_FOUND
보조 반환 코드입니다. char_not_fnd 매개 변수에 잘못된 값이 포함되어 있습니다.

SV_INVALID_DATA_SEGMENT
보조 반환 코드입니다. 변환 테이블에 지정된 256바이트 영역이 세그먼트 경계를 벗어나 확장되었거나 세그먼트를 쓸 수 없습니다.

SV_INVALID_SOURCE_CODE_PAGE
보조 반환 코드입니다. source_cp에서 지정한 코드 페이지가 지원되지 않습니다.

SV_INVALID_TARGET_CODE_PAGE
보조 반환 코드입니다. target_cp에서 지정한 코드 페이지가 지원되지 않습니다.

SV_COMM_SUBSYSTEM_NOT_LOADED
기본 반환 코드입니다. 동사를 처리하는 동안 필수 구성 요소를 로드하거나 종료할 수 없습니다. 따라서 통신을 수행할 수 없습니다. 정정 작업은 시스템 관리자에게 문의하세요

SV_INVALID_VERB
기본 반환 코드입니다. opcode 매개 변수가 모든 동사의 작업 코드와 일치하지 않습니다. 동사가 실행되지 않았습니다.

SV_INVALID_VERB_SEGMENT
기본 반환 코드입니다. VCB가 데이터 세그먼트의 끝을 넘어 확장되었습니다.

SV_UNEXPECTED_DOS_ERROR
기본 반환 코드입니다. 다음 조건 중 하나가 발생했습니다.

  • Microsoft® Windows® 시스템에서 동사를 처리하는 동안 오류가 발생했습니다. 운영 체제 반환 코드가 보조 반환 코드를 통해 반환되었습니다. 문제가 지속되면 시스템 관리자에게 정정 작업을 문의하세요.

  • CSV가 보다 일반적인 Windows PostMessage 함수 호출이 아닌 Windows SendMessage 함수 호출을 발행하는 다른 애플리케이션이 호출한 메시지 루프로부터 발행되었습니다. 동사 처리를 수행할 수 없습니다.

  • SendMessage가 애플리케이션을 호출할 때 CSV가 발행되었습니다. InSendMessage Windows API 함수 호출을 사용하면, 애플리케이션이 SendMessage를 사용하여 호출되었는지 여부를 확인할 수 있습니다.

설명

형식 A 문자 집합은 다음으로 구성됩니다.

  • 대문자
  • 숫자 0~9
  • 특수 문자 $, #, @ 및 공백

이 문자 집합은 시스템이 제공하는 형식 A 변환 테이블에서 지원됩니다.

원본 문자열의 첫 번째 문자는 대문자 또는 특수 문자 $, #또는 @여야 합니다. 공백은 후행 위치에서만 허용됩니다. 방향이 ASCII에서 EBCDIC로 향하는 경우 소문자 ASCII 문자는 대문자 EBCDIC 문자로 변환됩니다.

형식 AE 문자 집합은 다음으로 구성됩니다.

  • 대문자
  • 소문자
  • 숫자 0~9
  • 특수 문자 $, #, @, 마침표 및 공백

이 문자 집합은 시스템 제공 형식 AE 변환 테이블에서 지원됩니다.

소스 문자열의 첫 문자는 문자 집합에서 공백을 제외한 모든 문자일 수 있습니다.

변환하는 동안 포함된 공백(첫 번째 위치 공백 포함)이 0x00로 변환됩니다. 이러한 변환은 완료되지만 CONVERSION_ERROR가 보조 반환 코드로 반환되어 CSV 라이브러리가 제공된 데이터에 대해 되돌릴 수 없는 변환을 완료했음을 나타냅니다.

Windows의 경우 COMTBLG의 설명은 \SnaBase\Parameters\Client 아래의 Windows 레지스트리를 가리켜야 합니다. OS/2 운영 체제의 경우 테이블을 포함하는 디렉터리 및 파일은 환경 변수 COMTBLG로 지정해야 합니다. 파일을 찾을 수 없는 경우 시스템은 SV_TABLE_ERROR 매개 변수 검사를 반환합니다.

char_not_fnd에 대한 SV_ROUND_TRIP 값은 두 번째 변환 테이블을 작성하여 동일한 두 코드 페이지 간에 반대 방향으로 변환하는 경우에만 유용합니다. 두 변환 테이블을 작성할 때 모두 SV_ROUND_TRIP 값을 지정하는 경우 한 코드 페이지에서 다른 코드로 변환되었다가 다시 반대로 변환된 모든 문자는 변경되지 않습니다.

char_not_fnd에 대해 SV_SUBSTITUTE 값을 사용하는 경우 변환된 문자열을 다시 원래 코드 페이지로 변환해도 반드시 원래 문자열이 다시 생성되는 것은 아닙니다.

char_not_fnd가 SV_SUBSTITUTE로 설정된 경우에만 substitute_char를 사용합니다.

변환 테이블에 저장된 값은 문자와 연결된 ASCII 값입니다. 테이블을 ASCII에서 EBCDIC로 변환하는 데 사용하는 경우 변환된 문자열에 표시되는 문자는 ASCII가 아닌 숫자 EBCDIC 값과 연결된 문자입니다.

예를 들어 ASCII에서 EBCDIC로 변환 테이블을 만드는 동안 밑줄() 문자(ASCII 값 F6)를 제공하는 경우 변환된 문자열에 표시되는 문자는 6이 되며 EBCDIC의 F6 값과 연결된 문자입니다. ASCII 에서 EBCDIC로 변환 테이블의 대체 문자로 \ 문자를 사용하려면 실제 문자가 아닌 E1 값(EBCDIC의 _ 문자와 연결된 값)을 제공해야 합니다.

코드 페이지는 특정 ASCII 또는 EBCDIC 값을 특정 문자와 연결하는 테이블입니다. 소스 코드 페이지의 문자가 대상 코드 페이지에 없는 경우 변환된(대상) 문자열은 원본(소스) 문자열과 다릅니다.