写入二进制格式的数据

E5071C

写入二进制格式的数据

有关样本程序的其他主题

概述

这个样本程序说明写入使用二进制传输格式的格式化数组。

参见这个程序的标注迹线

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行中用户按的不是是键,返回输入起始行。