[doc] 特殊稿件的稿纸打印
特殊稿件的稿纸打印
?8?计算机应用研究1991年第4期
ENDI
ENDl
XG=X”
@3,20SAYA一添加字段x一修改字段”GET
XG
READ
USEMlDD
XG?A?
APPEBLAN
ENDI
@0.0SAYSPAC(79)
@0.0say字段名+SPAC(3)+?类型?+SPAC
(3)+?宽度?+sPAc(2)+?小数
D()WHILREl>0.AND..NOT.EOF()
@1,0CLEA
I一1
D0WHILI<一8.AND..NoT.EOF()
@I.0GETFIELD—NAME
@I.13GETFIELD—TYPE
@I,18GETFIELD—LEN
DEC @l,2lGETFIELD—
READ
IFRBCN()<RE
SKlP
ELSE
EXlT
ENDI
I=I+l
ENDD
RE1一RE1一l
ENDD
USE
CREACU2FR0MMlDD
ERASMlDnDBF
RETU
说明;
1.调用本程序只须使用”DOHw?HNAME1-
NAME2”命令-其中NAME1是库结构需要修改的数
据库名,NAME2是修改后的数据库名.
2.程序
为每屏可修改8十字段,变量RE1是
总屏数,变量KU1接收NAME1的值,变量KU2接收
NAME2的值.
3.COPYTOMIDDSTRUEXTE”命夸语句生
成的MIDD数据库是一十中间库,其结构如下:
字段字段名类型宽度小数
1FIELD—NAME字符型l0
2FIELD—TYPE字符型1
3FIELD—LEN数字型3
lFIELD—DEC数字型3
MIDD库中的记录是NAMEI中的字段,记录十
数是NAMEI中字段个数.
COPYTOMIDDSTRUEXTE语句是一十扩展
拷贝命夸,使用它生成的数据库结构是不变的,总是和
MIDD.DBF库结构一样.
4.CREAU2FROMMIDD是CREA命令的
扩充形式.一般的dBASE1教科书中对此形式都未介
绍,其格式如下;
cREA(新库文件名)FROM(中间库文件名)
功能:以中间库中的记录为新库的字段产生一十
新的数据库文件.
中间库文件必须是象MIDD库的结构形式.
三,结束语对本程序适当修改,即可使程序记
住”MIDD库中的字段哪些被修改过,如生成MIDD库
后再作一十备份MIDD1,把M1DD修改完后,将其与
MIDD1中的记录逐条比较,就能发现NAMEI中的哪
些字段被修改过.一般地说,同一类事务的管理程序的
数据库结构差别不会很大,因此,程序员在设计管理程
序时,只颓规定库结构中的某几十字段可被用户修改,
并使程序具有能够处理修改后的数据库结构的能力,
这样,管理程序的通用性必将太大提高.
特殊稿件的稿纸打印
安徽芜湖供电局章建智
用计算机进行文字和图
的辅人,输出是很常见的.随着软件开发技术的发展.越来越受欢娅的编辑软
1991年4期计算机应用研究?9?
件的出现,使得文字和图表的编辑越来越简单.所人
们很自然地想刊稿纸打印.
所谓稿纸打印.就是将编辑好的文稿以精纸的形
式打印幸卣出.目前,常用的稿纸打印
有两种一是
利用设备自身的功能.如AR3240汉字打印机等}二
是利用文稿打印程序.如wPS编辑软件等.显然?后
者具有通用性.但仍有不足之处如无法进行特殊打
印,如上下标,上下划线等打印功能无法向文件}卣出,
不便于图表的剪贴等.
笔者经过长期的实践经验.用BASIC编制了一
十较为实用的稿纸打印程序(附程序清单).该程序可
克服上述缺点.现介绍给读者,供参考.
一
,程序功能本程序在2.13F操作系统的主持
下运行,具有屏幕输出,文件输出和打印输出功能.如
席I稿件中有图表,且希望将图表剪贴在稿纸上t这时可
选择文件输出,然后用ccED等编辑软件进行图表剪
贴.程序以2O?20
公文纸打印输出.县有页码计
数和换页功能.可使用2.13F中的太多数特殊打印控
翻码.可在稿纸的适当位置留有空白行,用于粘贴图
表.
=,功能的实现根据人们书写精件的习惯:文章
的标题.一般从稿纸的第五格写起I每自然段的首行行
首,总要空两格I如果稿件中有图形或表格.则要在稿
纸上留一定的空白扦.供粘贴图表之用.本程序正是利
用这一习惯编制的.
程序怎样识射.标题行,.段落首行”和.空白行
呢?为了使程序能识剐这些.行”.在编辑稿件时要求
标题行的行首至少要空8十空格I.段落首行”的行
首至步室4十空格,但不能多于7十空格.为了简单起
见..空白行按标题行处理.但内容要求用一对双引
号括起一十或若干十空格.以上三种.行的格式如下:
标题行:
口口口口口口口口标题内容
段落首行
口口口口t段落首行内容
空白行:
口口口口口口口.口
注:以上.口代表一十空格,下同.
程序规定标题行”从第五格开始打印,标题的内
窖如果字致较多,蹦打印到第l6格后.自动转到下一
行的第五格打印.同样也只能打印到该行的第16格?
如果标题还没有打完则继续换行.一直到标题打印完
毕.有时人们并不希望这样打印.而希望标题打印在一
行的中间这时可在标题内容的前面加上若干十室格?
以使标题居中打印.但必须用双引号括起来.格式如
下:
内容
同样.如果段落首行”.不想从第二格开始打印.也可
用上述方法.另外还可在.标题扦的行末或.段落首
行的行末加上若干十空格.所加的空格同样要用双引
号括起来,以使如落款,署名,日期等内容打印在适当
的位置.如.芜湖供电局”这五个字要从第八格开始打
印.可用两种方法t
?当做.标题行”处理,格式如下
口口口口口口口口口…口q湖供电局
六十空格l
?当做.段落首行处理,格式如下
三,拉制码的使用本程序中可使用的特殊打印控制
码,见下表
格式功能
„@字型?置字型
(在稿纸打印中可选择的字型
有A.E,I,M四种)
„0,7?置打印背景
其中:0无背景,1同点,2同格,
3横线,4竖线.5右斜线,
6左掌}线,7交叉线
„
},置抽点打印(轻打)
„I置反白打印
„/?置上赳线打印
置下划线打印
置正常打印(开机状态,清以上四
项)
?1o?计算觇应用研究1991年第4期
格式功铯
„(置左旋9o度打印
„)?置右旋90度打印
„々,
置结束旋转(开机状态,清以上二
-项
?
—
L,置上标字符
置下标字符
置正常字符(开机状态,清以上二?
j?
项)
控村码的使用方格同2.13F.但要注意以下两点:?所
有的控制码只能插在一行酊中闻或放在行首,不可放
在行末?两十或多十控制码不能放在一起使用.
特殊稿件附稿纸打印》程序具育特殊打印功能
打印的字体育?@束悻,?@M楷体,?@I?黑
体,?@E?仿宋体??@A?背景有1?%1同点?0,,2
„2?网格?0?,3?3?横线?0?4?4?竖线?0?,
5?5右斜线?0?,6?6?左斜线?0?,7?7?交叉
线?0?,0?0?无背景F另外还有???抽点?(轻打)
打印.?\?反白??打印,?/?上划线?=„打印.?一?下
划线?=„打印,?(„左旋??90度打印,?)?右旋??,90
度打印.上标?+ABeD?!打印,下标?一,1234?!,打
印等.
程序框图如下:
商
程序清单:
10REM程序名:WGDY.BAS
20REM该程序可打印2.13F的控制码.
30REM芜湖供电局计算机室章建智编制.
40CLS
S0KEY0FF
60PRINT(CHR$(14)+.[@M一200/15O?5
芜湖供电局计算机室]
70PRINTCHR$(14)+.[@A一22o/220?12
一
九九零年七月]
80PRINTCHR$(14)+[@M一274/180?4章
建智]
90PRINTC陬$(14)+.b14,oo,600.3oo]
1ooPRINTCHR$(14)+.bl4.20.2o,56o.
26o]
110PRINTcHR$(14)+@m一100/50?2?
文稿打印程序?]
120A$=INKEY$tIFA$=?THEN120
l30DnAA$(3o,2o),ZBF$(7)
140REM??????????
150REM主功能选择
l6OREM??????????
170CLsLOCATE.5-10,PRINT”本程序县有如
下功能:”
18oLOCATE7,10PRINT1.显示输出2.文件
输出3.打印输出
l90LocATE?.10,FR1NT”请选择功能号(O退
出)4.
20oCH$=INKEY$tCH$;.”THEN200
210IFCH$().lANDCH$(>”ANDC}”(>
.3ANDCH$().0”彳HENLOCATE10.
10,PRINT.功能号选择错误,重选..:FOR
DD=1TO1000tNEXTDD,LOCEl0.
1O:PRINTSPACE$(20)IGOTO190
22OIFCH$=OrHENEND
230IFCH$=.1”THENDEv一SCRN:”:T
=0:F0Rl=1TO7ZBF$(1)=??.NEXT
1:Co43TO450
240ZBF$(1)=r:ZBF$(2):.l,
ZBF$(3)
:皿F$(4)一.L”:ZBF$(5)=“.J”:ZBF
$(6):.
tZI3F$(7)”]”:T:17
250IFCH$=.3”~ttENDEV$:.LPTl;”
WID.rHDEV$,25S
260IFCH~=2”THENCLS:INPUT请}卣入
要}卣出的文件名FDEv$
27OREM??????????
28OREM打印机选择
290REM???????????
300CLS:LocATE5,10}PRINT”1.M一1724.
M--2024等针径为1/160英寸的打印机”
310LOCA~E7.1O:PRIN~2.AR324O,LQ1500
等针径为1/180英寸的打印机”
320LOCATE9.10,PRINT.请选择打印机
…???
“
I
330D$=lNKEV$tD$=?THEN330
340IFD$()lANDD$()”2~rHENLO-
CATElo,10:PRINT打印机选错,重选.:
l991年4期计算机应用研究?11?
F0RDDlTo100O:NEXTDD:LATE
l0.10:PRINTSPACE$(20)I:Go1D32O
35{1IFD$一lTHENHJ$#”18{ZH一73:
TH=1oELSEltl$=.16ZH=82:TH一3
360REM????????太?
37oREM邮政编码
3岳0REM????oOPENDEV$F()ROUTPUTAS#2
46oIFCH$()l?叮HENPRINT#2,&}U
$+@A>
47oCLS:INpUT文稿名:F$:CLS:LO—
CATE5,l0:PRINT”程序正在进行,请稍等
-?-
?
E
48OIFCH$一3THENINPuT请输入打印份
教ICOUNTELSEoDuNT一1
490REM??????
500REM韧始化
510REM??????
520FoRl=lTO3O:FoRJ=1TO20:AA$(I,
J)=“:NEXTJ:NEXTI
53oI—l:J—hCl:0:PIE=0;TEMPY一?:
TEMP1$=COUNTl一0
540REM??????????
55OREM主程序开始
555REM?????????
56OOPENF$FORINPUTAS#l
57OWH1LEN叽EOF(1)
58OIFI>:2lTHEN720
590LINEINPUT#l,A$
600IFLEFT$(A$,1)一CHR$(138)THEN
A$MID$(A$,2)
6lOIFA$一CHR$(13)+CHR$(10)ORA$
一
一oRA$CHR$(13)L)RA$一CHR
$(1O)THEN820
62oIFLEFT$(A$,8)一STRING$(8,32)
THEN65O
630IFLEFT$(A$.4)=STRING$(4-32)
THEN70o
640Z—l:H一21:GoSUB990jGOTO82o
I+l, 650IFJ()lTHENI—
66oJ一5:Z=5:H=17:COS~JB990
670IFJ(>5THENl一【+1
680J一1
690G0rrO82O
7O0IFJ()lTHENI=I+l
7lOZ#l:J一3fH一2l:G0SUB990;GoT082O
72t)cosUB1260:FoRM鲁1TO20:FORN—l
TO20:AA$(M,N)=“:NEXTN:EEXT
M
73(IIFI21ANDJ=1THENl=l:GoTO820
740IFl=21ANDJ<>tTHENGoSUB80(I:I
一1.GoTO82O
75OIFJ=1THENGoSUB770:G()To820
760GoSUB800:GoSUB770}Go1D82O
770RDRM一2lToI—l:FoRN=lTO20
78OAA$(M一20,N)=AA$(M,N):AA
$(M,N)=“:NEXTN:NEXTM
79OI=I一2O:RETURN
8OOF0RN一1T0J—l
8lOAA$(I--2O.N)=AA$(I.N):AAY(I,N)
一
.
:NEXTNRETURN
20WEND
830IFI2>=2lTHEN850
840GOTO900
850GoSUB1260FoRM一1TO2O:FORN—l
TO2O:AA$(M,N)=“:NEXTNNExT
M
86OIFI车21ANDJ=1THENI=l:GoTO900
87OIFI=21ANDJ()1THENGOSUB800:I—
lG(玎O900
880IFJ1THENGoSUB770:COTO900
890GoSUB8OOGOSU13770
900IFI1ANDJ=lTHEN930
91OGoSUBl26O
920IFCH$<)lTHENPRrNT#2.?&2O
@A”I
930CLOSE:INPUT还有文稿要打印吗Y,
?12?计算机应用研究1991年第4期
Y$
940IFY$=.Y”ORY$一Y”THEN170
950END
960REM??????
970REM赋值子程序
980REM??????
990G(?B1500
1000IFLErr$(A$,1)=CHR$(34)1HENA
$=MID$(A$+2)?
1010IFRIGHT$(A$,1)=CHR$(34)T}玎,N
A$一LE不$(A$,LEN(A$)一1)
1020A1$一LEFT$(A$,1):A1=ASC(A1
$)tA2$=M?Y(A$,2,1)IFA2${)
THENA2=Asc(A2$)ELSEA2=
A1tA2$=“tA$=A1$+A2$
1030IFA1$=.?叮HENPIE=PIE+1
1040IFA1$=…ANDP?=1THENTEMP
$=““tTEMPl$=
1OS01FPIE?)OTHEN1070
1060GoTo1090
1070TEMP$=TEMP$+A1YA$=MID
$(A$,2)
1O8OIFPIE()2THENG0TO1210ELSEPIE=
0GoTO1210
1090IFINSTR(TEMP$,.l)()0ORINSTR
(TEMP$,\_)()0ORINSTR(TEMP$,
\)()0ORINSTR(TEMP$,,)()0
THENTDMP1$一.?=„
1100IFINSTR(TEMP$,.(“)(0ORINSTR
(TEMP$,.))(0THENTEMPI$一
„??”
1110IFINSTR(TEMP$.+)()0oRINSTR
(TEMP$.”一)()00R1NSTR(TEMP$,
.
t”)()0THENTEMPl$=一J.竹
11201FINSTR(TEMP$,@”)?O,rHEN
TEMPl$=
1130IFINSTR(TEMP$,.??)(0T}玎,N
TEMP1$=?O
1140IFlNsTR(TEMP$,0”)()0OR1NsTR
(TEMP$,一”)()0ORINSTR(TEMP
$,”?)()0ORINSTR(?MP$,J”)()
THENTEMP1$tTEMP$一?
1150IFCH$=.1”THEN删P$一:
TEMPl$=?
ll60IF(A1<l28ANDA2<l28)0R(Al>l60
ANDA2>l60)THENl180
u7OA$(I,J)=TP$+乙E不$(A$.1)
+”+TEMPl$:A$=MID$(A$,
2):G0T01l90
ll80IFA2$()…THENAA$(I.J)=TEMP
$+LE不$(A$,2)+TEMP1$:A$=
MID$(A$,3)ELSEAA$(I,J)=TEMP
$+LE不$(A$,1)十+TEMPI$;A
$MD$(A$,2)
l】90J=J+l:IFJ;HTHENJ=ZtI—I+1
1200IF1NSTR(TEMP$,@){)0THEN
TEMP$一
l210IFA$=.THENG0TO1220ELSEG0一
T01020
1220RETURN
1230REM?????
1240REM打印子程序
l2SOREM???????.
l260ClC1+l
1270IFCH$”l呵HENCLS:GoT1290
1280L0CATE5+20tPRINT.程序正在进行工作
???
1290mRC=1T0COUNT
1300LoLJNTl=C0UNTl+1
1310LoCATE6,l
1320PR州T#2,TAB(T)IF$(1)I.一I.
mRK一1TOl9PRINT#2.一一l.
NEXTKPR晰#2,ZBF$(7)
l330FOIlL=1T019:G0SUB1430
l340IFCH$一”lTHENGOSUB1460ELSE
GosUBl440
135ONEXTL
1360GOSUB1430{PRINT#2,TAB(T)IZBF
$(4),.一lJfl0RK1TO19tPRINT#
2,1ItNEXTK:PRINT#2,ZBF
$(5)
l370IF(YMY$=yORYMY$一.Y)AND
Cl=ITHENPRINT#2,TAB(3+T)I.?
断政编码IYM$I
1380PRINT#2,TAB(36+T)I”第”IclI页I
TAB(60+T)l20×20
1390IFCH$.1THEN1420
1400FOI1K=1TOZH一61:PRINT#2,.”:
l991年4期计算机应用研究?13?
NEXTK:LOCATE6,lIPRINTSTRlNG
$(80,32)
l410IFCoUNTlMODTH0THENPRINT
#2..
l420NEXTC:RETURN
1430PRIT#2,TAB(T)lZBF$(2),AA$(L.
1)|:FORK=2TO20:PR1NT#2,”1”,:
PRlNT#8.A.A$(乙.K)IINEXTK:
PRINT#2,ZBF$(2):RETUIN
1440PRINT#2.TAB(T)-ZBF$(3)I一”I】
F0RK=21?020:PRINT#2上一”,:
NEXTKPRlNT#2,ZBF$(6)
l450PRI卜rr#2,TAB(T)|ZBF$(3)f一”4;
F(mK=2TO20lPRINT#2.T,”,:
NEXTKPRINT#2,ZBF$(6)RB
TURN
1460PRINT#2,TAB(T),ZBF$(3)I——”|:
F0RK=81,D2OIPRINT#2,.+一”I:
NExTKPRINT#2,ZBF$(6)tRETURN
l470REM?????????????
1480REM去掉行首和行末空格子程序
1490REM?????????????
l500S1=l
1510IFMID$(A$.S1,1)=“„H,NSlSl+l
=l:GoT0l810
i520AY—MID$(A$.S1)tS1一l
l530IFA$=叮HENl860
1540IFASC(RIGHT$(A$.S1)1=弛THEN
SlS1+1lGOTOl540
1550A$一MID$(A$,lILEN(A$)一S1+1)
1560RETURN
电子CAD软件系统——TANG0
华中理I大学赵英俊胡阳
随着微蛩计算机应用技术的普及和发展,人们越
来越多地利用微机来进行电子线路设计(包括原理图
的设计与模拟,印科电路板的设计与加工等等).就目
前的情况来看,大多采用现成的电子CAD/CAE软件
来进行这方面的工作.国内市场上也出现了许多电子
CAD/cAE系统.如SMARTwORK,AutoROUTE,
BOARD.REDBA0RD—REDLOGEEDesinger/Sys-
tern,PCAD以及ofCAD等等.这些软件价格不同,功
能各异.使用起来也各具特色.这里升绍一个电子
CAD/CAE系统一一TANGo.
一
,TANGO系统的结构与特点TANGO软件
是美国ACCELTecholog~esInc.在1987年推出来的
新一代电子CAD轼件系统t目前国内流行的有V1.13
,
V3.12等若干版本.该系统由原理图编辑软件
(1?ANGo—Schematic),印刷电路板设计软件(TAN.
Go—PCB)和印刷电路板自动布线软件(TANGO—
R0UTE)三部分组成.用它可以完成从原理图设计到
印刷电路板工艺文件输出一系列复杂而繁琐的工作.
总的束讲,TANGO软件具有.学习容易,操作简
便,经济实用的持点,的确不失为同类系统中的上乘
之作.
1.对硬件环境要求低TANGO系统可以在
DOS2.00以上版本的操作系统的支持下,运行于任何
mMPc/xT,AT,Ps2微机或兼容机之上,仅要求微机
系统具有384K以上的内存.配有两十软盘驱动器或
一
十硬盘驱动器.TANGO系统的图形可以通过
CGA,EGA,VGA,AGA及HEAR图形卡在相应的显
示器上显示出来.此外,还可以用HP,DMP及
ROLAND系列的绘图仪和EPSON系列的打印机输
出各种图形.鼠标器是一种辅助硬件,而不是必备硬
件.
2.学习窖易TANGO系统采用菜单式命令结
构.其操作命争不仅简单易学,而且可以在屏幕上随时
查询.这样,即使不嵌靠操作手册.用户也能通过实际
操作,很快熟悉全部操作命夸.
3.操作简便使用TANGO系统进行设计时.全
部操作均能用键盘很方便地完成.如果使用鼠标器则
能提高工作效率.TANGO系统配有极为丰富的元件
符号图彩库和元件封装图形库,这些图形库可以很方
便地进行扩充和改建.使之满足各用户的需要.