QBasic:如何从另一个程序中 运行 一个程序?
QBasic: how to run a program from within another program?
我在 QBasic 中制作了两个不同的程序,它们都保存在不同的 .bas 文件中,即一个是 1.bas,另一个是 2.bas。
如何在程序 2.bas 中打开程序 1.bas 而不关闭它?
程序 1 应该 运行 在程序 2 中一段时间,当它结束时我应该再次进入程序 2。有什么办法可以做到吗?
我想知道是否有适用于 QBasic 的语法 and/or QB64。
在 Qbasic 中,您可以使用 CHAIN
命令将控制传递给另一个 .BAS 文件,完成后它将 return 传递给第一个 .BAS 文件。您可以将它与 COMMON
结合使用,以便在两个程序之间共享变量。
你也可以使用RUN
但是在QBasic中你不能传递变量(不确定但我认为控件不会return)。在 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
我在 QBasic 中制作了两个不同的程序,它们都保存在不同的 .bas 文件中,即一个是 1.bas,另一个是 2.bas。
如何在程序 2.bas 中打开程序 1.bas 而不关闭它?
程序 1 应该 运行 在程序 2 中一段时间,当它结束时我应该再次进入程序 2。有什么办法可以做到吗?
我想知道是否有适用于 QBasic 的语法 and/or QB64。
在 Qbasic 中,您可以使用 CHAIN
命令将控制传递给另一个 .BAS 文件,完成后它将 return 传递给第一个 .BAS 文件。您可以将它与 COMMON
结合使用,以便在两个程序之间共享变量。
你也可以使用RUN
但是在QBasic中你不能传递变量(不确定但我认为控件不会return)。在 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