2014-11-18 3 views
1

IBM 파일을 16 진수 값으로 전달하려고합니다.DFSORT를 사용하여 IBM 파일을 16 진수로 변환하는 방법은 무엇입니까?

48383030 

나는이 방법으로 시도 :

H800  

파일이 출력을 절약 할 수 :

이 입력으로

//R45ORF80V JOB (EFAS,2SGJ000),'LLAMI',NOTIFY=R45ORF80, 
//  MSGLEVEL=(1,1),MSGCLASS=X,CLASS=A,    
//  REGION=0M,TIME=5        
//*--------------------------------------------------- 
//SORTEST EXEC PGM=ICEMAN        
//SORTIN DD DSN=LF58.DFE.V1408001,DISP=SHR   
//SORTOUT DD DSN=LF58.DFE.V1408001.OUT,    
//   DISP=(NEW,CATLG,DELETE),     
//   LRECL=4,DATACLAS=CDMULTI    
//SYSOUT DD SYSOUT=X         
//SYSPRINT DD SYSOUT=X         
//SYSUDUMP DD SYSOUT=X         
//SYSIN DD *          
    SORT FIELDS=COPY          
    OUTREC FIELDS=(1,4,HEX)         
    END             
/*   

을하지만, 다음과 같은 출력 :

C8F1F0F0 

내가 뭘 잘못하고 있니? COMP-3 필드가있는 500 개의 LREC가있는 파일도 16 진수로 변환 할 수 있습니까? 파일 관리자를 사용하여 파일을 탐색하는 동안 "16 진수"명령을 사용할 수 있습니다.

+0

보고있는 출력은 코드 페이지 37 (및 다른 것들)에 대해 정확합니다. 왜 문자 "0"의 16 진수 표현이 "30"이라고 생각합니까? – cschneid

+0

@cschneid ASCII. –

답변

2

컨트롤 카드에서 요청한 결과를 제공합니다. 그들은 EBCDIC의 16 진수 값을 ASCII로 표시합니다. 예상되는 16 진 값입니다.

실제로 ASCII 코드를 보려면 TRAN = ETOA, TRAN = HEX를 사용하십시오.

OUTREC FIELDS을 사용하고 있습니다. FIELDS에는 BUILD라는 새로운 동의어 (정확히 10 년)가 있습니다. FIELDS는 이전 버전과의 호환성을 위해 지원됩니다.

INRECOUTRECINREC 나중에 SORT 또는 MERGE, OUTREC 사전이 작동 비슷합니다.

SORT/MERGE 후에 수행해야하는 경우가 아니면 INREC을 사용하는 것이 좋습니다.

그래서 :

INREC BUILD=(1,4,TRAN=ETOA) 

는하지만, 빌드를 사용할 필요가 없다. BUILD는 항상 새로운 버전의 레코드를 생성합니다. 여러 번이 필드를 재정렬 할 때 원하는 것입니다. 여기, 당신은 그렇지 않습니다.

INREC OVERLAY=(1,4,TRAN=ETOA) 

OUTREC으로 바꾸면 출력 파일이 ASCII로 인코딩됩니다.

당신이뿐만 아니라 ASCII를 보려면 :

INREC OVERLAY=(1,4,TRAN=ETOA,1:1,4,TRAN=HEX) 

주 마지막 예에서 1: :

INREC OVERLAY=(1,4,TRAN=ETOA,1,4,TRAN=HEX) 

대신 ASCII를보고 싶다면

. 이것은 "결과가 위치 1에있게 될 것"이라고 말하며 이전 변환 데이터를 덮어 씁니다. OVERLAY 할 수 있습니다, BUILD 한 문장으로 수 없습니다.