写入二进制格式的数据
概述
这个样本程序说明写入使用二进制传输格式的格式化数组。
参见这个程序的标注迹线。
HT Basic中的样本程序(write_b.htb)
10 REAL Freq,Fdata(1:1601,1:2)
20 DIM File$[300],Header$[10]
30 INTEGER Nop
40 !
50 ASSIGN @Agte507x TO 717
60 ASSIGN @Binary TO 717;FORMAT OFF
70 CALL Inp_file_name(File$)
80 !
90 OUTPUT @Agte507x;":CALC1:PAR1:SEL"
100 OUTPUT @Agte507x;":INIT1:CONT OFF"
110 OUTPUT @Agte507x;":ABOR"
120 !
130 OUTPUT @Agte507x;":SENS1:SWE:POIN?"
140 ENTER @Agte507x;Nop
150 REDIM Fdata(1:Nop,1:2)
160 !
170 ON ERROR GOTO File_error
180 ASSIGN @File TO File$
190 ENTER @File USING "K";Buff$
200 ENTER @File USING "K";Buff$
210 ENTER @File USING "K";Buff$
220 FOR I=1 TO Nop
230 ENTER @File USING "19D,2X,19D,2X,19D";Freq,Fdata(I,1),Fdata (I,2)
240 NEXT I
250 ASSIGN @File TO *
260 OFF ERROR
270 !
280 OUTPUT @Agte507x;":FORM:DATA REAL"
290 Header$="#6"&IVAL$(8*2*Nop,10)
300 OUTPUT @Agte507x;":CALC1:DATA:FDAT ";Header$;
310 OUTPUT @Binary;Fdata(*),END
320 GOTO Prog_end
330 !
340 File_error: OFF ERROR
350 PRINT "############ ERROR ############"
360 PRINT File$&" is NOT exist."
370 PRINT " or"
380 PRINT File$&" has UNSUITABLE data."
390 !
400 Prog_end: END
410 !=============================================
420 ! File Name Input Function
430 !=============================================
440 SUB Inp_file_name(Inp_name$)
450 DIM Inp_char$[9]
460 ON ERROR GOTO Inp_start
470 Inp_start: !
480 PRINT "Input File Name!"
490 INPUT "Name?",Inp_name$
500 PRINT "Input Name: "&Inp_name$
510 INPUT "OK? [Y/N]",Inp_char$
520 IF UPC$(Inp_char$)<>"Y" THEN Inp_start
530 OFF ERROR
540 SUBEND
说明
50行到60行
为I/O通道分配GPIB地址。
70行
传递对名为Inp_file_name的子程序的控制,使用户输入文件名,然后将返回文件储存到File$变量中。
90行到110行
这些行将通道1的激活迹线设置为迹线1,并对扫描进行控制。
130行到140行
这些行将通道1的激活迹线设置为迹线1,并对扫描进行控制。
150行
调整基于Nop变量(点数)值的F数组的大小。
170行
如果获取文件(例如,如果没有文件匹配File$)的数据发生错误,这行指出要执行的声明块。
180行到260行
这些行获取File$识别的文件的格式化数据,并将数据保存到F数组。
280行
将数据传输格式设置为二进制。
290行
创建数据头,并将其储存到Header$变量。
300行
发送将数据储存到通道1中激活迹线(迹线1)的格式化数组的命令,然后发送数据头(Header$)。
310行
发送数据本身(F数据),然后发送消息结束符。
因为写入的二进制数据必须是没有经过格式化的数据,所以程序使用设定为支持写入非格式化数据的I/O路径(@二进制)。
340行到380行
如果在获取文件数据时发生错误,执行这个声明块。
440行到540行的Inp_file_name子程序用于输入保存文件名,描述如下。
460行
如果在输入目标文件名时出现差错(例如无效输入),允许用户返回到输入的起始行,并再次输入数据。
480行到490行
这些行提示用户输入目标文件名。该程序在用户实际输入文件名后继续。
500行到510行
这些行显示输入的文件名,并等待确认输入(是/否键)。
520行
如果在870行中用户按的不是是键,返回输入起始行。