REXX 입/출력 명령을 사용 하 여

만료된 KB 콘텐츠 고지 사항

이 문서는 Microsoft에서 더 이상 지원하지 않는 제품에 대해 작성되었습니다. 따라서 이 문서는 “있는 그대로" 제공되며 더 이상 업데이트되지 않습니다.

요약

여기서는 REXX 프로그래밍 언어의 입/출력 기능을 나열 하 고 예제를 제공 합니다.

자세한 내용

부인:이 기사는; 제공 하는 정보를 사용 하 여 프로그램을 개발할 수 있는 사용자를 위해 제공 됩니다. 언어 있지만 대신 간단한 루틴을 작성 누군가 지원 하기 위해 빠르게 참조할 광범위 한 처리 않습니다. Microsoft 재현 하 고 자체는 언어 구현 문제 제출 넘어 프로그래밍 노력을 지원할 수 없습니다. 추가 지원, REXX 참조 해야 할 경우 참조 "REXX 언어, 프로그래밍에 대 한 실용적인 접근법" 달력이 F. Cowlishaw가 같은 Prentice 홀, Englewood 절벽, 1985.


목록의 맨 아래에 예제가 제공 됩니다. 중괄호 ({}) 주석을 나타내는 데 사용 됩니다.


CHARIN (파일 | input_stream | kbd, start_read, number_to_read) {number_to_read 문자부터 시작 하 여 start_read에 지정 된 파일 위치를 반환 (start_read c o m 1과 같은 input_streams에 지정할 수 없습니다). Number_to_read에 대해 0을 지정 하면 현재 "start_read에" 포인트 읽기 재배치 됩니다. 요청 된 바이트 수를 사용할 수 없습니다 있지만 사용할 수 있게 됩니다 (즉, COMn) CHARIN 대기 하 고, 그렇지 않으면 NOTREADY 상태가 발생 합니다. }


CHAROUT (output_stream | 파일 | 화면, 데이터, start_write) {지정된 된 대상으로 문자를 씁니다. 파일에 대 한 '데이터' 지정 되지 않은 경우 다음 "지점을 쓰기" 이동 start_write 합니다. 일반적으로 데이터는 CHAROUT에 의해 해당 파일에 추가 됩니다 항상 수 있도록 쓰기 포인트 파일의 끝입니다. '데이터' 나 start_write 모두 지정 된 경우 다음 파일이 닫혀). CHAROUT 완료 하거나 오류 조건을 반환 될 때까지 처리가 중지 됩니다. }


CHARS(input_stream|file|kbd) {읽을 수 있는 문자 수를 반환 합니다. STDIN에 대해 항상 1 반환 데이터를 사용할 수 있으면 (그렇지 않은 경우 0). 항상 OS/2 장치용 1을 반환합니다. }


라인 입력 (from_this_source, top_of_source?, number_of_lines) {줄 읽기 또는 0을 반환 (from_this_source 자동으로 열립니다). Top_of_source 1 (유일 하 게 유효한 값)로 지정 되 면 현재를 읽을 소스에서 첫 번째 바이트에 지점을 다시 설정 됩니다. Number_of_lines (읽기 지점의 위치를 재지정)를 0 또는 1입니다. }


라인 출력 (to_this_target, this_data, top_of_target?) {기록 될 (일반적으로 오류) this_data, to_this_target에 기록 될 경우 남아 있는 줄 수를 반환 합니다. top_of_target? 1로 설정 되어 쓰기 위치는 대상의 첫 번째 바이트에 설정 됩니다 다음 to_this_target을 닫는 this_data 나 top_of_target을 모두 지정 합니다.}


LINES(source) {1 소스에서 더 많은 데이터를 하는 경우 0을 반환 그렇지.}


끌어오기 var1 var2... var? {지정 된 변수에 입력 반환. 변수 보다 더 많은 '단어'를 지정 하는 경우 뒤에 오는 단어가 한 줄에 모두 마지막 변수에 배치 됩니다. 통해 또는 변수를 지정 하지 않고 풀의 효과 입력된 소스를 비웁니다. }


PUSH var1 var2... var? {입력된 소스에 변수의 내용을 붙여 넣습니다. 각각 별도 PUSH 입력 원본의 행을 나타냅니다. 예: 밀어넣기 b c 한 줄 내용을 포함 하는 입력된 소스에서 생성 a, b와 c 반면 푸시. PUSH b; PUSH c의 내용을 하나 입력된 소스에서 세 줄 배치 a, b와 세 번째 내용 c의 내용과 함께 두 번째입니다.}


큐 var1 var2... . var? {변수 현재 큐의 끝에 배치 됩니다. 각 개별 큐 입력된 소스를 별도 줄을 가져옵니다. PUSH 위의 예제를 사용 하 여 완료 후 '푸시 'c '큐 xyz' xyz의 내용에에서 추가 입력된 소스 'xyz 푸시'가 진행 하는 경우에서 ' 밀어넣기는 '. }


QUEUED() {현재 REXX 대기열에 줄 수를 반환 합니다.}


{이 화면에 표시 하기 전에 식을 하지만 계산 하는 MS-DOS @echo 명령 처럼} 식 말


SOURCELINE(n) {현재 프로그램의 줄 번호 ' n '를 반환 합니다. 즉, ' n '을 지정 하지 않으면 프로그램 소스 줄의 총 수.}


스트림 (I/O_stream, type_of_action, specific_command) {정보 (데이터) 스트림 될 수 있는 type_of_action에 따라 반환: ' C'ommand (specific_command는 필요), ' D'escription (의 상위 ' 가능한 경우 추가 정보를 반환 하는 S'tate)와 ' S'tate (오류, NOTREADY, 준비 등의 현재 상태를 반환 하는, 열려 있는 파일에 일반적으로 이것이) specific_commands는: 열기, 닫기 존재 하는 쿼리, 쿼리 크기, 쿼리에 날짜/시간 검색 offest. 마지막 세 스트림이 있는 경우 스트림의 경로, 크기 및 날짜/시간을 반환 합니다. }


(설명은 다음과) 예:


(당신은 실행 하 고 아래 코드를 추출 하는 것이 좋습니다. 이 경우 OS/2 REXX 파일로 인식할 수 있도록 시작 주석을 포함 해야 합니다. 두 개의 파일을 만드는 데 필요한 같은 작업: 주문 및 재고. 또한 프로그램을 실행할 디렉터리에 레이블 이라는 파일 없다고 해야 합니다. 주문에 있는 캐리지 리턴/줄 바꿈 구분 레코드가 다음 레코드 레이아웃.
temp_line = STREAM('instock','C','QUERY EXISTS')IF temp_line = '' THEN
DO
SAY Stock exhausted
EXIT
END
temp_line = STREAM('orders','C','QUERY EXISTS')
IF temp_line = '' THEN
DO
SAY No orders
EXIT
END
temp_line = SOURCELINE(1)
PUSH "Labels produced by " temp_line
PULL temp_line
n = LINEOUT('labels',temp_line)
n = LINEOUT('labels','')
DO WHILE ((CHARS('instock') > 0) & (LINES('orders') > 0))
lname = CHARIN('orders',,8)
fname = CHARIN('orders',,5)
initial = CHARIN('orders',,1)
PUSH fname initial lname
cust_addr = CHARIN('orders',,10)
city_st_zip = CHARIN('orders',,16)
QUEUE cust_addr
QUEUE city_st_zip
part_desc = LINEIN('instock',,1)
PULL first_line
n = CHAROUT('labels',first_line)
n = LINEOUT('labels',part_desc)
DO WHILE queued() > 0
PULL temp_line
n = LINEOUT('labels', temp_line)
END
END

먼저 12 선을 스트림 명령을 사용 하 여 사용 중인 파일의 존재 여부를 확인 하 고 파일이 있는 경우 예 명령을 사용 하 여 오류 메시지를 표시. Temp_line은 문자열 작업 저장소로 사용 됩니다.


선 13-17에서는 SOURCELINE 명령을 사용 하 여이 프로그램의이 원본 첫 줄을 가져옵니다. 레이블 파일의 첫 번째 줄 대로 두면 다음과 기록 됩니다. PUSH는 temp_line에 다시 포함 되 고 다음 라인 출력 명령을 사용 하 여 레이블에 대 한 기록 설명 접두사로 SOURCELINE의 결과 효과적으로 결합 합니다. 밀어넣기 및 끌어오기 기본 REXX 내부 큐를 임시 저장소로 사용합니다. 각 PUSH 큐에 캐리지 리턴/줄-구분 선 만들고 각 풀 줄을 제거 합니다.


주문 또는 재고의 끝에 도달 하면 루프가 발생 하는 문자 및 줄 명령을 사용 하는 18 번 줄 합니다.


19-21 세 개의 변수 CHARIN를 사용 하 여 주문 후 읽어 줄 선으로 구분 된 파일이 아닙니다. 22 줄에 밀어넣기 출력에 다음 세 개의 변수를 다시 정렬합니다.


변수를 읽을 23, 24 줄 25 및 26 줄 REXX 내부 큐 이름 뒤에 주소 및 시/도/우편 번호를 저장 하려면 대기 하 게 되. 단순히 내부 큐 맨 밖 잡아당겨 원하는 순서로 삽입할 수 전체 주소가 있습니다.


차량에 선으로 구분 된 파일 이므로 라인 27 줄에 사용 됩니다. 끌어오기는 CHAROUT 29 줄에 사용 하 여 출력 되는 이름을 보려면 28 줄에 사용 됩니다. CHAROUT INSTOCK 설명이 이름 옆에 레이블 파일에 넣을 수 있는 캐리지 리턴/줄-공급 및이 필요를 추가 하지 않기 때문에 사용 됩니다. 선을 완료 하 고 라인 출력 30 줄에 나옵니다.


31 선 대기 명령이 큐에 남은 데이터를 테스트 하 고 레이블에 대 한 기록에 사용 됩니다.
속성

문서 ID: 99063 - 마지막 검토: 2017. 1. 12. - 수정: 1

피드백