CONVERT
CONVERT 동사는 ASCII 문자 문자열을 EBCDIC로 변환하거나 EBCDIC 문자열을 ASCII로 변환합니다. 변환할 문자열을 원본 문자열이라고 합니다. 변환된 문자열을 대상 문자열이라고 합니다.
다음 구조체는 CONVERT 동사에서 사용하는 VCB(동사 제어 블록)에 대해 설명합니다.
구문
struct convert {
unsigned short opcode;
unsigned char opext;
unsigned char reserv2;
unsigned short primary_rc;
unsigned long secondary_rc;
unsigned char direction;
unsigned char char_set;
unsigned short len;
unsigned char FAR * source;
unsigned char FAR * target;
};
구성원
opcode
제공된 매개 변수입니다. SV_CONVERT 작업 코드를 식별하는 동사입니다.
opext
예약된 필드입니다.
reserv2
예약된 필드입니다.
primary_rc
반환된 매개 변수입니다. 동사를 완료할 때 APPC에서 설정하는 기본 반환 코드를 지정합니다. 유효한 반환 코드는 발행된 APPC 동사에 따라 다릅니다. 이 동사의 유효한 오류 코드는 반환 코드를 참조하세요.
secondary_rc
반환된 매개 변수입니다. 동사를 완료할 때 APPC에서 설정하는 보조 반환 코드를 지정합니다. 유효한 반환 코드는 발행된 APPC 동사에 따라 다릅니다. 이 동사의 유효한 오류 코드는 반환 코드를 참조하세요.
direction
제공된 매개 변수입니다. 변환 방향을 지정합니다. ASCII에서 EBCDIC로 변환하려면 SV_ASCII_TO_EBCDIC 사용합니다. EBCDIC에서 ASCII로 변환하려면 SV_EBCDIC_TO_ASCII 사용합니다.
char_set
제공된 매개 변수입니다. 원본 문자열을 변환하는 데 사용할 문자 집합을 지정합니다. 허용되는 값에는 SV_A(문자 집합 형식), SV_AE(AE 문자 집합 형식) 및 SV_G(사용자 정의 형식 G 문자 집합)가 포함됩니다.
len
제공된 매개 변수입니다. 변환할 문자 수를 지정합니다.
이 길이와 원본 또는 대상 버퍼의 시작부터의 오프셋은 세그먼트 경계를 초과하면 안 됩니다.
source
제공된 매개 변수입니다. 변환할 문자열을 포함하는 버퍼의 주소를 지정합니다.
대상
제공된 매개 변수입니다. 변환된 문자열을 포함할 버퍼의 주소를 지정합니다.
이 버퍼는 원본 매개 변수가 가리키는 버퍼와 겹치거나 일치할 수 있습니다. 이 경우 변환된 데이터 문자열은 원본 데이터 문자열을 덮어씁니다.
반환 코드
SV_OK
기본 반환 코드입니다. 동사가 성공적으로 실행되었습니다.
SV_PARAMETER_CHECK
기본 반환 코드입니다. 매개 변수 오류로 인해 동사가 실행되지 않았습니다.
SV_CONVERSION_ERROR
보조 반환 코드; 원본 문자열에서 하나 이상의 문자를 변환 테이블에 찾을 수 없습니다. 이러한 문자는 null(0x00)으로 변환되었습니다. 동사는 여전히 실행됩니다.
SV_INVALID_CHARACTER_SET
보조 반환 코드; char_set 매개 변수에 잘못된 값이 포함되어 있습니다.
SV_INVALID_DATA_SEGMENT
보조 반환 코드; 원본 또는 대상 문자열을 포함하는 데이터 버퍼가 한 세그먼트에 맞지 않거나 대상 세그먼트가 읽기/쓰기 세그먼트가 아니었습니다.
SV_INVALID_DIRECTION
보조 반환 코드; 방향에 잘못된 값이 포함되어 있습니다.
SV_INVALID_FIRST_CHARACTER
보조 반환 코드; A 소스 문자열 형식의 첫 번째 문자가 잘못되었습니다.
SV_TABLE_ERROR
보조 반환 코드; 다음 중 하나가 발생했습니다.
사용자가 작성한 형식 G 변환 테이블이 포함된 파일은 환경 변수 CSVTBLG에 의해 지정되지 않았습니다.
테이블이 올바른 형식이 아니었습니다.
CSVTBLG 변수로 지정된 파일을 찾을 수 없습니다.
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 레지스트리를 가리킵니다.
G 변환 테이블 형식의 데이터는 32줄 길이의 ASCII 파일이어야 합니다. 각 줄은 16자를 나타내는 32개의 16진수 숫자로 구성되어야 하며 캐리지 리턴 및 줄 바꿈으로 종료되어야 합니다. 처음 16줄(256자)은 ASCII 문자가 변환되는 EBCDIC 문자를 지정합니다. 나머지 16개 줄은 EBCDIC 문자가 변환되는 ASCII 문자를 지정합니다.
16진수 A~F는 대문자 또는 소문자일 수 있습니다. 그러나 OS/2 버전 1.0용 IBM ES와의 호환성을 보장하기 위해 이러한 숫자 대문자를 만들 수 있습니다.
참고
GET_CP_CONVERT_TABLE 사용하여 G 사용자 기록 변환 테이블 형식을 메모리에 빌드한 다음, 테이블에 저장할 수 있습니다.