胖丁丁
第500楼2013/11/11
我居然找到了当年编的信纸(20×15)格式打印程序,1996年左右的程序,随着放论文的子目录搬了几次家,还能找得到,真是意外。贴出来纪念一下(单位名称处理掉)。
注:这个程序现在从社会需求到技术上都没有用处了,现在早不需要信纸格式,而且程序运行需要UCDOS5.0+针式打印机,现在估计也找不到了。就看看开心一下吧,看看自己96年的编程水准。
TDEMO=SPACE(30)
SET STATUS OFF
SET SCOREBOARD OFF
do while .t.
SET ECHO OFF
SET TALK OFF
SET COLO TO *W/X,N/G,N
CLEA
set prin to lpt3
set devi to prin
@0,0 SAY CHR(14)+'[{-50|10@d=2)16(12信纸(20×15)格式打印程序}]'
@0,0 SAY CHR(14)+'[C148,150,60]'
@0,0 SAY CHR(14)+'[F148,150,9]'
@0,0 SAY CHR(14)+'[C450,150,60]'
@0,0 SAY CHR(14)+'[F450,150,2]'
@0,0 SAY CHR(14)+'[C148,310,60]'
@0,0 SAY CHR(14)+'[F148,310,13]'
@0,0 SAY CHR(14)+'[C450,310,60]'
@0,0 SAY CHR(14)+'[F450,310,14]'
@0,0 SAY CHR(14)+'[C300,240,60]'
@0,0 SAY CHR(14)+'[F300,240,20]'
SET DEVI TO SCRE
SET PRIN TO PRN
SET COLO TO *W/N,N/*G,N
@ 8 ,14 prom '功能简介'
@ 8 ,52 prom '浏览文章'
@ 17,14 prom '打印单页'
@ 17,52 prom '打印全篇'
@ 13,33 prom ' 退出 '
SAVE SCRE TO XXTT
menu to xxzz1
if xxzz1=5
*RETU
quit
endif
*****************************************************单页
if xxzz1=3
SET COLO TO N/GR,N/GR
@ 22,10 SAY '请输入文件名(含路径):' get TDEMO
read
if file(tdemo)
else
quit
endif
erase tdemo.txt
copy FILE &tdemo TO TDEMO.TXT
USE TTDEMO
DELE ALL
PACK
APPEND FROM TDEMO.txt TYPE SDF
sxx=' 1'
SET COLO TO BR
@ 5,0 clear
SET COLO TO N/GR,BR/*W
@ 6,18 CLEA TO 12,50
@ 6,18 TO 12,50 DOUB
@ 8,20 say '该文章共有'+str(round(reccount()/15+0.5,0),2)+'页'
@ 10,20 say '选择第 页'
@ 10,27 get sxx
read
go (val(sxx)-1)*15+1
SET COLO TO W/B
@ 15,19 CLEA TO 19,50
@ 15,19 to 19,50 doub
SET COLO TO W/B
@ 17,21 SAY '准备好打印机,按任一键打印'
WAIT ''
SET PRINT ON
SET DEVI TO PRINT
I=0
DO WHILE .T.
I=I+1
IF I=16
IF EOF()
SET DEVI TO SCREEN
SET PRINT OFF
exit
ENDIF
SET DEVI TO PRINT
SET PRINT OFF
EXIT
ENDIF
IF I=1
@ prow(),1 say '`I`'
@ PROW()+4,79 SAY '深圳市某某实验室`&20`'
@ PROW()+1,65 SAY ''
ENDIF
@ PROW(),5 SAY '`@A` `&0` `^1` `@24,24`'
IF I=1
@ PROW()+1,13 SAY '┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐ '
ELSE
@ PROW(),13 SAY '├─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┤ '
ENDIF
@ PROW()+1,13 SAY '│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ '
IF .NOT.EOF()
@ PROW(),8 SAY '`@X``&0`'+'`@35,40` `@40,40` `^6`'+ZD+'`@A``&0``^1` `@16,24`'
ELSE
@ PROW(),10 SAY '`@A` `&0` `^1` `@24,24`'
*@ PROW()+1,13 SAY '│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ '
@ PROW()+1,13 SAY '│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ `@16,24`'
ENDIF
@ PROW(),13 SAY '│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ '
if i=15
@ PROW()+1,13 SAY '└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘ '
ELSE
@ PROW()+1,13 SAY '├─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┤ '
@ PROW()+1,13 SAY '│ │'
@ PROW()+1,13 SAY '│ │'
ENDIF
IF .NOT.EOF()
SKIP
ENDIF
IF I=15
@ PROW(),1 SAY '`I`'
@ PROW()+2 ,18 SAY '`@A` 20×15=300'
@ PROW(),95 SAY '第'+sxx+'页'
@ PROW(),1 SAY '`E`'
ENDIF
@ PROW() ,1 SAY ''
ENDDO
REST SCRE FROM XXTT
endif
*****************************************************全页
if xxzz1=4
SET COLO TO N/GR,N/GR
@ 22,10 SAY '请输入文件名(含路径):' get TDEMO
read
if file(tdemo)
else
quit
endif
erase tdemo.txt
copy FILE &tdemo TO TDEMO.TXT
USE TTDEMO
DELE ALL
PACK
APPEND FROM TDEMO.txt TYPE SDF
GO TOP
SET PRINT ON
SET DEVI TO PRINT
I=0
J=1
DO WHILE .T.
I=I+1
IF I=16
IF EOF()
SET DEVI TO SCREEN
SET PRINT OFF
QUIT
ENDIF
I=1
J=J+1
ENDIF
SET DEVI TO SCREEN
SET COLO TO BR
@ 5,0 clear
SET COLO TO N/GR,BR/*W
@ 6,18 CLEA TO 12,50
@ 6,18 TO 12,50 DOUB
@ 8,20 say '该文章共有'+str(round(reccount()/15+0.5,0),2)+'页'
@ 10,20 say '己打印'+str((J-1),2)+'张'
SET COLO TO W/B
@ 15,19 CLEA TO 19,50
@ 15,19 to 19,50 doub
SET COLO TO W/B
IF J=1.and.i=1
@ 17,21 SAY '准备好打印机,按任一键打印'
WAIT ''
ELSE
@ 17,21 SAY ' 请换一张新纸,并联机 '
ENDIF
do while sys(13)='OFFLINE'
SHJS=INKEY(1)
ENDDO
@ 17,21 say ' 正在打印第'+str(J,2)+'张 '
SET DEVI TO PRINT
IF I=1
@ prow(),1 say '`I`'
@ PROW()+4,79 SAY '深圳市某某实验室`&20`'
@ PROW()+1,65 SAY ''
ENDIF
@ PROW(),5 SAY '`@A` `&0` `^1` `@24,24`'
IF I=1
@ PROW()+1,13 SAY '┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐ '
ELSE
@ PROW(),13 SAY '├─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┤ '
ENDIF
@ PROW()+1,13 SAY '│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ '
IF .NOT.EOF()
@ PROW(),8 SAY '`@X``&0`'+'`@35,40` `@40,40` `^6`'+ZD+'`@A``&0``^1` `@16,24`'
ELSE
@ PROW(),10 SAY '`@A` `&0` `^1` `@24,24`'
@ PROW(),13 SAY '│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ `@16,24'
ENDIF
@ PROW(),13 SAY '│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ '
if i=15
@ PROW()+1,13 SAY '└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘ '
ELSE
@ PROW()+1,13 SAY '├─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┤ '
@ PROW()+1,13 SAY '│ │'
@ PROW()+1,13 SAY '│ │'
ENDIF
IF .NOT.EOF()
SKIP
ENDIF
IF I=15
@ PROW(),1 SAY '`I`'
@ PROW()+2 ,18 SAY '`@A` 20×15=300'
@ PROW(),95 SAY '第'+STR(J,2)+'页'
@ PROW(),1 SAY '`E`'
ENDIF
@ PROW() ,1 SAY ''
ENDDO
REST SCRE FROM XXTT
endif
if xxzz1=1
SET COLO TO BR
@ 5,0 clear
SET COLO TO N/GR,BR/*W
@ 5,5 CLEA TO 22,73
@ 5,5 TO 22,73 double
@ 6,26 say '功 能 简 介'
@ 8,10 say ' 投寄文章经常要求以(20×15)信纸格式抄写,而目'
@ 9,10 say '前流行的各种文本编辑软件均不能满足该要求,如WPS软件'
@ 10,10 say '只有(40×40)信纸格式,WORD软件根本没有稿纸打'
@ 11,10 say '印格式。 '
@ 12,10 say ' (20×15)信纸格式打印程序可以满足这样的要求,它'
@ 13,10 say '能将文本文件直接打印成稿纸形式,省去了手工誊写的麻烦,'
@ 14,10 say '不仅速度快(打印1 张纸不足2 分钟),而且使广大笔迹不佳'
@ 15,10 say '者从此摆脱了捉笔发窘的难堪境地。'
@ 16,10 say ' 该程序在UCDOS5.0下使用,待打印的文章必须是文本文件,'
@ 17,10 say '如PE文件或WPS 的非文书文件。具体要求如为:文件第1 行即 '
@ 18,10 say '是标题,正文每行顶头,每行20个汉字或40个符号,文件中不'
@ 19,10 say '得有字体、字型、行距、字距等格式控制符(上下角标控制符'
@ 20,10 say '除外)。 '
WAIT ''
REST SCRE FROM XXTT
endif
ENDDO
retu