正文

Quick Basic 常用的语句2005-06-02 16:54:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/hange/1422.html

分享到:

语句名               语句格式                             功能 BEEP                 BEEP 使喇叭发声 BLOAD                BLOAD filespc[,address] 把用BSAVE语句存贮的文件装入内存 BSAVE                BSAVE filespc,address,length 把某一内存区域中的内容存入磁盘 CALL                 CALL 过程名[(形式参数表)] 调用一个过程 CALLS                CALLS 过程名[形式参数表] 把控制传给非BASIC语言写的过程 CALL ABSOLUTE        CALL ABSOLUTE address [(参数表)] 传送控制给一个机器语言过程 CALL INT86OLD        CALL INT86OLD(int_no, in_array(), out_array())                      CALL INT86XOLD(int_no,in_array(), out_array()) 实现DOS功能调用 CALL INTERRUPT       CALL INTERRUPT(int_no, inregs, outregs)                      CALL INTERRUPTX(int_no, inregs, outregs) 结构化的DOS功能调用 CHAIN                CHAIN filespec 将控制由当前程序转到别的程序 CHDIR                CHDIR path 改变现行的目录(相当于DOS的CD) CIRCLE               CIRCLE(x,y),r,[,c[,start,end,[,aspect]]] 画圆或圆的一部分 CLEAR                CLEAR 重新初始化全部变量,关闭文件和设置堆栈的大小 CLOSE                CLOSE [[#]n[,[#]n]...] 关闭文件。n是文件号;无选择时关闭所有文件 CLS                  CLS 清屏幕 COLOR                COLOR [背景色][,[调色板] 设置图形颜色(随图形方式不同而不同 COM                  COM(n){ON|OFF|STOP} 允许,不允许或禁止指定口上的通讯事件捕捉 COMMON               COMMON 变量表 说明要传递给被链接程序的变量 CONST                CONST 常值名=常值表达式 说明用于代替数值或字符串的符号常数 DATA                 DATA 常量[,常量]... 为READ语句准备数据 DATE$                DATE$=S$ 根据S$中的内容设置系统日期 DECLARE              DECLARE {FUNCTION|SUB}过程名[(参数表)] 说明引用过程和检查参数类型 DEF FN               DEF FN                      DEF FN...END DEF 定义单行或多行函数 DEF SEG              DEF SEG[=n] 为需段地址语句定义数据段 DEF type             DEF type 字符范围 定义变量的缺省类型 DIM                  DIM 变量 [AS类型] 说明变量并分配存贮空间 DO...LOOP            DO...LOOP 根据条件决定是否进行循环 DRAW                 DRAW S$ 在显示器上画图 END                  END {DEF | FUNCTION | IF| SELECT | SUB | TYPE} 结束程序.过程或程序块 ENVIRON              ENVIRON 含"="的字符串 修改DOS环境字符串表中的参数 ERASE                ERASE array,[array]... 重新初始化静态数组,重新为动态数组分配空间 ERROR                ERROR n 模拟产生BASIC错误 n EXIT                 EXIT { DEF | DO | FOR | FUNCTION | SUB } 跳出循环或程序块 FIELD                FIELD [#]filenum,宽度 AS 字符串变量... 在随机存贮文件缓冲器里为变量分配空间 FILES                FILES [filespec] 显示指定磁盘上文件(相当于DOS的DIR) FOR...NEXT           FOR...NEXT 允许一批命令在循环中执行给定的次数 FUNCTION             FUNCTION...END FUNCTION 说明过程函数的名字,参数和代码 GET                  GET [#]filenum[,recnum[,variable]]                      GET (x1,y1)-(x2,y2),array 把一磁盘文件读入随机存取缓冲器变量存储屏幕上的图像 GOSUB RETURN               GOSUB...RETURN 将控制转移到子程序和从子程序返回 GOTO                 GOTO {行号|行标号} 无条件转移到指定语句 IF...THEN... ELSE...   根据逻辑表达式的值进行条件执行 INPUT                INPUT[;][提示字符串{;|,}]变量表 在程序运行期间从键盘输入数据 INPUT#               INPUT#filenum,变量表 从顺序存取装置或文件中读取数据 IOCTL                IOCTL[#]filenum,字符串 传送控制数据字符串到设备驱动器 KEY                  KEY n,字符串                      KEY {ON|OFF|LIST} 把软键字符串值赋给功能键显示,清除或全显功能键 KEY(n)               KEY(n){ON|OFF|STOP} 开启.关闭或停止捕捉指定键 KILL                 KILL filespec 删去磁盘上的指定文件 LET                  [LET]变量=表达示 赋值 LINE                 LINE(x1,y1)-(x2,y2),color, BF, style 画线或方框 LINE INPUT           LINE INPUT[;][提示字符串 {;|,}]字符串变量 输入一整行字符 LINE INPUT#          LINE INPUT #filenum,S$ 从顺序磁盘文件读一整行字符串到S$中 LOCATE               LOCATE row,col,cursor,start,stop 将光标移到指定位置或改变光标属性 LOCK ... UNLOCK                      用另外的过程控制对打开文件的全部或部分的存取 LPRINT                      向打印机发送数据 LPRINT USING                向打印机按格式发送数据 LSET                 LSET 字段变量=S$ 以左对齐方式把字符串数据放入随机文件缓冲区中 MID$                 MID$(S$,n[,m])=r$ 用r$把S$中的第n个符开始替换m个字符,原长度不变 MKDIR                MKDIR path 用字符串path建立一个子目录 NAME                 NAME 旧文件名 AS 新文件名 为文件改名 ON ERROR             ON ERROR GOTO {行号|行标号} 设置错误陷阱 ON even              ON even GOSUB {行号|行标号} 设置事件陷阱 ON...GOSUB           ON n GOSUB {行号|标号表} 转到第N个标号所示子程序 ON...GOTO            ON n GOTO {行号|标号表} 转到第n个标号所示语句 OPEN                 OPEN filespec [FOR mode]AS [#]n [len=recordsize] 打开磁盘文件 OPEN COM             OPEN "COMn:[baud][,parity][,data][,stop][,option]" AS [#]n [LEN=num] 打开一通讯文件 OPTION BASE          OPTION BASE n 设置数组下标缺省最小值 OUT                  OUT portno,n 把一个字节值n送到I/O端口 PAINT                PAINT (x,y)[,color][,boundary] 在图形屏幕上用颜色或图案填充封闭区域 PALETTE              PALETTE attribute,color 改变调色板中的颜色 PALETTE USING        PALETTE USING array 改变调色板中所有颜色 PCOPY                PCOPY源显示而,目的显示页 以全屏幕方式将一页拷贝到另一页上 PEN {ON | OFF | STOP}       允许.禁止和暂停光笔事件捕捉 PLAY                 PLAY 字符串 演奏字符串指定的音乐 PLAY {ON | OFF | STOP}      允许.禁止和暂停对演奏事件的捕捉 POKE                 POKE address,byte 将一字节写入指定内存单元 PRESET               PRESET (x,y)[,color] 在屏幕上画一点(缺省为背景色) PRINT                       显示语句 PRINT #                     输出字符串到文件 PRINT # USING               格式输出到文件 PRING USING                 格式显示 PSET                 PSET (x,y)[,color] 在屏幕上画一点(缺省为前景色) PUT                  PUT [#]filenum[,[recnum] [,varable]] PUT (x,y) array,action       将变量或随机存贮缓冲器写入文件                              将由GET得到的图像放置在屏幕上 RANDOMIZE            RANDOMIZE [n] 预置(重新播种)随机数发生器 READ                 READ 变量表 从DATA语句读数据并赋给变量 REDIM                REDIM 变量 AS 类型... 改变已为动态数组分配的空间 REM                  REM remark 在程序里插入说明或注释 RESET                RESET 关闭全部磁盘文件 RESTORE              RESTORE {行号|行标号} 允许从指定的行重读DATA语句 RESUME               RESUME {行号|行标号|NEXT} 错误捕捉程序调用后继续执行程序 RETURN               RETURN {行号|行标号} 控制从子程序里返回 RMDIR                RMDIR path 消去目录path(相当于DOS的RD) RSET                 RSET S$=X$ 把X$右对齐放在随机存贮缓冲器的字符器S$中 RUN                  RUN [{行号|文件名}] 重新执行内存中程序或由文件名指定的程序 SCREEN               SCREEN [mode][,[colorswitch]][,[apage][,[vpage]] 设置显示屏幕 SEEK                 SEEK [#]filenum,position 在文件里为下一个读写操作设定位置 SELECT CASE         根据一个表达式决定执行n个语句块之一 SHARED               SHARED 变量 AS 类型... 说明共用变量 SHELL                SHELL 命令字符串 暂停BASIC程序,运行DOS的命令 SOUND                SOUND 频率,时间长度 从喇叭发声 STATIC               STATIC 变量表 说明为静态变量 STOP                 STOP 终止程序执行 STRIG                STRIG {ON|OFF} 开启或关闭操纵杆的触发检查 STRIG ON,OFF和STOP STRIG(n) {ON|OFF|STOP} 允许.关闭或暂停捕捉操纵杆动作 SUB SUB...END SUB           标明子程序的开始和结尾 SWAP                 SWAP 变量1,变量2 交换两个变量的值 SYSTEM               SYSTEM 关闭所有打开文件并把控制返回操作系统 TIME$                TIME$=S$ 按字符串S$来设置时间 TIMER {ON| OFF|STOP}       允许.禁止或轶计时事件捕捉 TRON/TROFF           TRON/TROFF 跟踪程序语句的执行 TYPE TYPE...END TYPE        定义数据类型 UNLOCK                     释放对文件一部分的锁定 VIEW VIEW [SCREEN](x1,y1)-(x2,y2),color,border 为图形输出定义屏幕边界 VIEW PRINT           VIEW PRING top TO bottom 设置屏幕上文本窗口边界 WAIT                 WAIT portno,and_value,xor_valud 监视端口状态并暂停程序的执行 WHILE...WEND               在条件为真时, 执行循环体内语句 WIDTH                WIDTH [设备][列数] 设置输出宽度 WINDOW               WINDOW [SCREEN](x1,y1)-(X2,y2) 定义当前窗口的广义坐标 WRITE                WRITE 表达式表 在屏幕上输出数据 WRITE #              WRITE #filenum,expressiolist 将数据写入顺序文件 $DYNAMIC             REM $DYNAMIC 默认用动态数组, 特点:可以利用redim重新定义数组大小 $STATIC              REM $STATIC 默认用静态数组 (1).OPEN 语句 格式:OPEN <文件名> FOR <读写方式> AS#<文件号> <读写方式>: 这里我们只用二进制方式BINARY <文件号>:即文件缓冲区号,每一个文件都要指定一个不同的文件号(1~225); 说明: 以BINARY方式打开已存在的文件,指针指向首记录; (2)CLOSE语句 关闭已用的文件 CLOSE [#<文件号1>][,#<文件号2>]…… 关闭由文件号指定的文件缓冲区,将内容存盘,如不指定文件号,则关闭所有已打开的文件; (3)、GET#语句 格式:GET #<文件号> [,<地址>][,<记录变量>] 功能: 用于从文件中读一个指定地址的记录,赋给一个记录变量。 (4)、PUT#语句 格式:PUT #<文件号> [,<地址>][,<记录变量>] 功能: 将一个记录变量的内容写到指定地址的记录中去 (5)SEEK语句 格式:SEEK#<文件号>,<字节位置> 把指针移动指定地方 (6)LOF语句 格式:LOF<文件号> 获得文件的大小! (7)EOF语句 格式:EOF<文件号> 判断文件是否到最后! 三、随机文件(RAMDOM ACCESS FILE) 随机存取文件——所有记录等长,各记录相应的数据项的长度也相同; 按记录号进行存取,记录的顺序不一致,可直接读写任一条记录。 1、随机文件的建立 (1)OPEN <文件名> AS#<文件号> [LEN=<长度>] 存取方式不用指定,自动加上“FOR RANDOM”,表示随机文件; (2)定义缓冲区中各“域”的长度(FIELD 字段) FIELD <文件名>,<域宽>AS<域名>[,<域宽>AS <或名>] 定义记录的结构 如:FIELD #1, 10 AS A$, 15AS B$, 36AS C$ (3)随机文件的记录中各域只能存放字符串数据,在对数值型数据进行处理时,要经过转换; (4)数值转换为字符的函数 MKI$(<整型表达式>) 2字节 MKS$(<单精度表达式>) 4字节 MKD$(<双精度表达式>) 8字节 称为“内码字符串” (5)缓冲区中各域的字符串变量赋值 LSET <域变量>=<字符串>(左对齐) RSET <域变量>=<字符串>(右对齐) (6)将文件缓冲区中的数据存盘 PUT #<文件号>[,<记录号>] (7)用CLOSE关闭文件 例10-5:(P340例12.11) OPEN "good.dat" FOR RANDOM AS #1 LEN=23 FIELD #1, 2 AS n$,15 AS m$,4 AS P$,2 AS s$ DO READ num%,nam$,price,stock% IF num%=9999 THEN EXIT DO LSET n$=MKI$(num%) LSET m$=nam$ LSET p$=MKS$(price) LSET s$=MKI$(stock%) PUT #1 LOOP DATA ............. DATA ............. DATA ............. DATA ............. DATA ............. DATA 9999,,, CLOSE END 2、随机文件的读入 (1)、打开随机文件      OPEN <文件名> AS#<文件号> [LEN=<长度>] (2)、定义文件缓冲区中各域的长度; FIELD <文件名>,<域宽>AS<域名>[,<域宽>AS <或名>] (3)、从指定的文件中读取一个记录 GET #<文件号> [,<记录号>] (4)、将内码字符串还原为数值型数据; CVI(<2个字节的域变量>)——整数 CVS(<4个字节的域变量>)——单精度 CVD(<8个字节的域变量>)——双精度 这三个函数是MKI$,MKS$ MKD$的逆运算 (5)、关闭文件      CLOSE 例10-6:(P341例12.12) OPEN "good.dat" FOR RANDOM AS #1 LEN=23 FIELD #1, 2 AS n$,15 AS m$,4 AS P$,2 AS s$ PRINT "num","name","price","stock" FOR i%=1 TO LOF(1)/23 GET #1,i% num%=CVI(n$) nam$=m$ price=CVS(p$) stock%=CVI(s$) PRINT num%,nam$,price,stock% NEXT i% CLOSE END 3、随机文件的修改 随机文件的优点:可直接读写任何一个记录,且既能读又能写。 例10-7:(P342例12.13) OPEN "good.dat" FOR RANDOM AS #1 LEN=23 FIELD #1, 2 AS n$,15 AS m$,4 AS P$,2 AS s$ INPUT "which record:";r DO UNTIL r=0 GET #1,r num%=CVI(n$) nam$=m$ price=CVS(p$) stock%=CVI(s$) PRINT num%,nam$,price,stock% INPUT "price=";price LSET p$=MKS$(price) PUT #1,r INPUT "which record:";r LOOP CLOSE END 3、记录型变量 一个记录包括若干个“域”,在同一文件中各个记录所包含的域都是相同的,这样可以定义一种新的变量类型——记录。   1001 Shirt 67 120 1002 Skirt 87 108 1003 Coat 231.5 67 (1)、定义记录类型 格式:TYPE  <记录类型名> <域名1> AS <类型> <域名2> AS <类型> ...... <域名n> AS <类型> END TYPE 例如: TYPE goods       num    AS  INTEGER       nam    AS  STRING*15       price  AS  SINGLE       stock  AS  INTEGER       TYPE END (2)、定义记录变量 格式: DIM <记录变量名> AS <记录类型名> 例如:  DIM  a  AS goods (3)、记录变量中的域表示法 格式: <记录变量名>.<域名> 例如:  a.num     表示a变量中的num域。 4、用于记录变量的读写语句 (1)、GET#语句 格式:GET #<文件号> [,<记录号>][,<记录变量>] 功能: 用于从文件中读一个指定的记录,赋给一个记录变量。 (2)、PUT#语句 格式:PUT #<文件号> [,<记录号>][,<记录变量>] 功能: 将一个记录变量的内容写到指定的记录中去。 例10-8:用记录变量的方法建立一个随机文件。 (P346例12.14) TYPE goods   num    AS  INTEGER   nam    AS  STRING*15   price  AS  SINGLE   stock  AS  INTEGER TYPE END DIM cloth  AS  goods OPEN "good.dat" FOR RANDOM AS #1 LEN=LEN(cloth) DO READ cloth.num,cloth.nam,cloth.price,cloth.stock IF cloth.num=9999 THEN EXIT DO PUT #1,,cloth LOOP DATA ..... ..... DATA 9999,,, CLOSE END 例10-9:用记录变量的方法读入一个随机文件内容。 (P347例12.15) TYPE goods   num    AS  INTEGER   nam    AS  STRING*15   price  AS  SINGLE   stock  AS  INTEGER TYPE END DIM cloth  AS  goods OPEN "good.dat" FOR RANDOM AS #1 LEN=LEN(cloth) PRINT "num","name","price","stock" FOR i%=1 TO LOF(1)/LEN(cloth)   GET #1,i%,cloth PRINT cloth.num,cloth.nam,cloth.price,cloth.stock NEXT i% CLOSE END 例10-10:用记录变量的方法修改一个随机文件内容。 (P348例12.16) TYPE goods   num    AS  INTEGER   nam    AS  STRING*15   price  AS  SINGLE   stock  AS  INTEGER TYPE END DIM cloth  AS  goods OPEN "good.dat" FOR RANDOM AS #1 LEN=LEN(cloth) DO   INPUT "which record";r   IF r=0 THEN EXIT DO   GET #1,r,cloth PRINT cloth.num,cloth.nam,cloth.price,cloth.stock INPUT "price=";cloth.price PUT #1,r,cloth LOOP CLOSE END 四、文件与目录处理 1、显示磁盘目录    FILES ["文件名"] 例:FILES "*.BAS" —显示当前目录下,扩展名为BAS的所有文件; 2、执行DOS命令    SHELL [命令字符串] 例:SHELL "dir"  — 暂时退出QBASIC,执行DOS的命令dir(显示目录),然后返回QBASIC。 注:如果没有[命令字符串],则转到DOS命令状态,可用EXIT返回QBASIC。 3、文件改名    NAME <旧名> AS <新名> 可改名或修改文件路径。 4、文件删除     KILL <文件名> 5、目录操作 MKDIR <路径名>——建立子目录 CHDIR <路径名>——改变当前目录 RMDIR <路径名>——删除(空)目录

阅读(6884) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册