DBASE命令文件书写格式的自动生成
2、原文件中以上的命令要成对出现,书写可以是完全大写,也可以是完全小写,但不能大小写混合。DO与CASE、DO与WHIL之间只能空一格。
3、命令文件书写格式的自动生成与文件中每行语句前的空格多少无关紧要,本程序会自动判别,加以取舍。
该程序用解释BASICA 1.13编写,在386DX/25及IBM-PC/XT机上运行通过。
程序清单(文件名:BXPRG.BAS):10REM"DBASEⅢ命令文件收写格式的自动生成"20CLS:INPUT"请输入文件名",R$30 OPEN R$ FOR INPUT AS#1
40 OPEN"BXO.PRG"FOR OUTPUT AS#2
50 FOR I=1 TO 20000
60 IF EOF(1) THEN 250
70 LINE INPUT#1,A$:L=LEN(A$):IF SPP=1 THEN SP1=0:GOTO 200
80 FOR I1=1 TO L:IF MID$(A$,I1,1)<>"" THEN SPACE=I1-1:A$=RINGHT$(A$,L-SPACE):GOTO 100
90 NEXT I1:GOTO 220
100 IF LEFT $(A$,8)="DO WHILE"ORLEFT $(A$,8)="dowhile"THEN H=1:SP1=SP1+1:GOTO 220
110 IF LEFT $(A$,4)="ENDD"ORLEFT $(A$,4)="endd"THEN H=0:SP1=SP11:GOTO 220
120 IF LEFT $(A$,7)="DOCASE"ORLEFT $(A$,7)="docase"THEN H=3:SP1=SP1+3:SP3=SP1:GOTO 220
130 IF LEFT $(A$,4)="CASE"OR LEFT $(A$,4)="case"THEN H=5:SP1=SP3+5:GOTO 220
140 IF LEFT $(A$,4)="OTHE"OR LEFT $(A$,4)="othe"THEN H=-5:SP1=SP3+5:GOTO 220
150 IF LEFT $(A$,4)="ENDC"OR LEFT $(A$,4)="endc"THEN H=0:SP1=SP33:GOTO 220
160 IF LEFT $(A$,2)="IF"OR LEFT $(A$,2)="if"THEN H=-3:SP1=SP1+3:GOTO 220
170 IF LEFT $(A$,4)="ELSE"OR LEFT $(A$,4)="else"THEN H=3:GOTO 220
180 IF LEFT $(A$,4)="ENDI"OR LEFT $(A$,4)="endi"THEN H=0:SP1=SP3:GOTO 220
190 IF LEFT $(A$,4)="TEXT"OR LEFT $(A$,4)="text"THEN H=0:SPP=1:SP2=SP1:GOTO 220
200 IF LEFT $(A$,4)="ENDT"OR LEFT $(A$,4)="endt"THEN H=0:SPP=0:SP1=SP2:GOTO 220
210 H=0
220 IF SP1+H<0 THEN BEEP:PRINT"出错,前置空格小于0":GOTO 270
230 A$=SPACE $(SP1+H)+A$:PRINT #2,A$
240 NEXT I
250 CLOSE:KILLR$:NAME"BXD.PRG"ASR$
260 BEEP:PRINT"DBASEⅢ命令文件书写格式生成完毕"
270 END
(浙江 张文楚)