OSI/FTAM Programming Guide

NonStop FTAM Programming Examples
HP NonStop OSI/FTAM Programming Guide528612-001
5-70
Writing a File: TAL Programming Example
1090
1091 error := Read^File ( FTAMFLE, local_buf, local_buf_len, , MAX_REC );
1092 IF ( error <> 0 ) THEN
1093 BEGIN
1094 IF ( error = 1 ) THEN
1095 EOF_flag := 1
1096 ELSE
1097 BEGIN
1098 tempbuf ':=' "Read^File for local file failed with error #"
1099 -> @text_ptr;
1100 @text_ptr := @text_ptr + DNUMOUT ( text_ptr
1101 , $DBL (error)
1102 , BASE );
1103 text_len := @text_ptr - @tempbuf;
1104 CALL WRITE ( termnum, outbuf, text_len );
1105 CALL STOP;
1106 END;
1107 END
1108 ELSE
1109 BEGIN
1110 !-------------------------------------------------------------!
1111 ! The data to be sent out to the remote system is now set. !
1112 ! In addition to the local file record, the carriage return !
1113 ! (13) and line feed (10) are appended to the data as !
1114 ! format effectors. !
1115 !-------------------------------------------------------------!
1116
1117 data_value_ptr ':=' [0] & data_value_ptr[0]
1118 FOR (MAX_BUF - 1) BYTES;
1119 @data_hdr := @data_value_ptr;
1120 data_hdr.znum^elements := 1;
1121
1122 @element_hdr := @data_hdr + $udbl ( $len (data_hdr) );
1123 element_hdr.zlen := $dbl ( local_buf_len ) + CRLF_len;
1124 element_hdr.ztype := ZFTM^VAL^DE^TEXT;
1125
1126 @data := @element_hdr + $udbl ( $len ( element_hdr ) );
1127 data ':=' local_buf_s FOR local_buf_len BYTES;
1128 data[local_buf_len] ':=' [13,10];