我正在尝试在QBASIC中显示一条语句1000次(用于语句)。我认为程序可以正常运行,但是我看不到1000条语句,因为无法在QBASIC的输出窗口中上下滚动。我只能看到1000条语句的最后一部分。
FOR x = 1 TO 1000
PRINT "maydie";
PRINT
NEXT x
答案 0 :(得分:0)
那将非常困难。对于QBasic,您必须了解PRINT的工作方式。除了外观之外,您还可以编写一个TSR程序,该程序可以用其他某种语言来实现您想要的功能。另一种方法是将所有内容存储在数组中,并通过滚动创建自己的显示例程。但是有1000行会遇到内存限制
答案 1 :(得分:0)
简而言之,除非您对QBasic使用现代风格,否则您将无法使用。
您可以 做的是将输出打印到文本文件中:
OPEN "C:\somefile.txt" FOR OUTPUT AS #1
FOR x = 1 TO 1000
PRINT #1, "maydie":
PRINT
NEXT x
这会将“ maydie”写入C:\ somefile.txt 1000次。然后使用一些文本编辑器查看输出。您甚至可以使用一个程序来计算文本的行数,例如OPEN“ C:| somefile.txt”,用于输入AS#1:WHILE NOT EOF(1):INPUT#1,junk $:i = i + 1: WEND:打印“有“ + STR $(i)+”行。“
答案 2 :(得分:0)
尽管其他回答者都说它不是内置的,因此不可能,但我是正确的,我同意这是非常可取的!因此,我一次又一次地基于以下内容设计脚本:
DIM text(1 to 1000) AS STRING
'Define text below: Here I've just defined it as every line being
'"maydie" with the value of the line number, but it could be whatever.
FOR i = 1 TO 1000
text(i) = STR$(i) + "maydie"
NEXT i
CLS
position% = 0
FOR i = 1 to 25
LOCATE i, 1: PRINT text(i); SPACE$(80 - LEN(text(i)));
NEXT i
DO
x$=INKEY$
IF x$ <> "" THEN
SELECT CASE x$
CASE CHR$(0) + CHR$(72) 'Up arrow
position% = position% - 1
IF position% < 0 THEN position% = 0
CASE CHR$(0) + CHR$(80) 'Down arrow
position% = position% + 1
IF position% > 975 THEN position% = 975
CASE CHR$(0) + "I" 'Page Up
position% = position% - 24
IF position% < 0 THEN position% = 0
CASE CHR$(0) + "Q" 'Page Down
position% = position% + 24
IF position% > 975 THEN position% = 975
CASE CHR$(27) 'ENDS the Program on ESC key.
END
END SELECT
FOR i = 1 to 25
LOCATE i, 1: PRINT text(i + position%); SPACE$(80 - LEN(text(i + position%)));
NEXT i
END IF
LOOP
经过测试,可以正常工作!如果要在程序中针对多个不同的文本块多次使用它,则只需将其转换为函数,然后将所需的变量传递给它即可。