QBasic:如何在另一个程序中运行程序?

时间:2016-06-21 12:21:18

标签: qbasic qb64

我在QBasic中创建了两个不同的程序,它们都保存在不同的.bas文件中,即一个是 1.bas ,另一个是 2.bas

当我在程序 2.bas 时,如何打开程序 1.bas ,而不关闭它?

程序1应该在程序2中运行一段时间,当它结束时我应该再次进入程序2.有没有办法做到这一点?

我想知道是否有适用于QBasic和/或QB64的语法。

1 个答案:

答案 0 :(得分:3)

在Qbasic中,您可以使用CHAIN命令将控制权传递给另一个.BAS文件,当它完成时,它将返回到第一个.BAS文件。您可以将它与COMMON结合使用,以便在两个程序之间共享变量。

您也可以使用RUN,但在QBasic中您无法传递变量(不确定,但我认为控件不会返回)。在QB64中, 可以使用RUN

传递变量

以标准COM1_EX.BAS和COM2_EX.BAS为例,COM1_EX.BAS的内容:

' == COM1_EX.BAS - COMMON statement programming example ==
DIM Values(1 TO 50)
COMMON Values(), NumValues

PRINT "Enter values one per line. Type 'END' to quit."
NumValues = 0
DO
   INPUT "-> ", N$
   IF I >= 50 OR UCASE$(N$) = "END" THEN EXIT DO
   NumValues = NumValues + 1
   Values(NumValues) = VAL(N$)
LOOP
PRINT "Leaving COM1_EX.BAS to chain to COM2_EX.BAS"
PRINT "Press any key to chain... "
DO WHILE INKEY$ = ""
LOOP

CHAIN "com2_ex"

COM2_EX.BAS的内容:

' == COM2_EX.BAS - COMMON statement programming example ==
' Notice that the variables Values() and NumValues from COM1_EX
' will be called X() and N here in COM2_EX
DIM X(1 TO 50)
COMMON X(), N

PRINT
PRINT "Now executing file com2_ex.bas, reached through a CHAIN command"
IF N > 0 THEN
   Sum = 0
   FOR I = 1 TO N
      Sum = Sum + X(I)
   NEXT I
   PRINT "The average of the values is"; Sum / N
END IF