主题:退出DO循环,有什麽好办法?
小小学徒
[专家分:0] 发布于 2007-01-05 14:40:00
编个随机文件键盘输入的程序,为了随时退出,用的DO循环,本来想用KEY功能,怎麽试也不行,好象受WINDOWS限制(弹出个窗,需要办什麽事,我闹不懂);用UNTIL,在其它程序中,以某变量做条件,可行,可在本程序中,用一个“域”做条件,不行,加个变量,太罗索,很不方便,请问各位老师该如何?急!
回复列表 (共9个回复)
沙发
雪光风剑 [专家分:27190] 发布于 2007-01-05 15:09:00
你设定的结束符是什么?
加个标志变量一般是比较简明的办法,如果你还觉得不够方便,只能说你在舍近求远
板凳
小小学徒 [专家分:0] 发布于 2007-01-05 18:55:00
谢雪光君,出现了很怪的现象,今天没时间了,明日,程序和现象一并写上,再请解释。
3 楼
小小学徒 [专家分:0] 发布于 2007-01-05 20:52:00
今又有时间,如下:
求b值(略)
n=b
ON KEY(11) GOSUB t
KEY(11) ON
DO UNTIL c=999
LET shju.xu=n
INPUT "q";shju.q
INPUT "h";shju.h
INPUT "l";shju.l
DUT #1 ,n,shju
n=n+1
LOOP
t: LET c=999
KEY(11)OFF
RETURN
FOR i=1 TO n
GET #1,i,shju
PRINT shju.xu,shju.q,shju.l
NEXT i
CLOSE
结果,只输进一个记录,自己退出,来不及试我的KEY,本来我怪的是,输出很多怪东西,把文件删后,就不那麽怪了,但,还是不明白。望教诲于我。
4 楼
moz [专家分:37620] 发布于 2007-01-05 23:23:00
1. PUT 应该只是笔误
2. 尽量避免使用 KEY( ),有很多不确定性.
3. 输出的是数据文件,奇怪不奇怪的并没什么.
4. 可以看看帮助文件,但就算是示例也不一定能准确运行.
5. 完全可以用 inkey$ 或其他标志所代替,把握更准更自由更自如.
5 楼
冷石_jasv [专家分:1570] 发布于 2007-01-06 10:55:00
do '等待输入某一键。。。。。按ESC退出
do
a$=inkey$
loop until a$<>""
'你的程序
locate 1,1:print a$;
loop until a$=chr$(27) '按ESC键退出
你还是跑QQ群:2737222 那里人多
6 楼
小小学徒 [专家分:0] 发布于 2007-01-06 20:08:00
谢冷石君和MOZ君.用INKEY$很理想.
7 楼
小小学徒 [专家分:0] 发布于 2007-01-11 21:15:00
再回冷石君:试过,不行,不如雪光君的加个变量,虽是每个记录多打一个回车。
但,你的延时,对我看长的输出很有好处,还要深谢!
8 楼
moz [专家分:37620] 发布于 2007-01-12 08:39:00
求b值(略)
shju.xu=b
k$=""
kk$=""
DO
do
k$=inkey$
loop while k$=""
select case k$
case chr$(27) : exit do
case chr$(13)
kk$=kk$+",,,,"
jj=0
for i=1 to 3
j=jj+1
jj=instr(j,kk$,",")
p$=mid$(kk$,j,jj-j)
select case i
case 1:shju.q=p$ '如果不是字符串类型,请转换
case 2:shju.h=p$
case 3:shju.l=p$
end select
next
shju.xu=shju.xu+1
put #1,shju.xu , shju
kk$=""
case else : kk$=kk$+k$
end select
LOOP
FOR i=1 TO shju.xu
GET #1,i,shju
PRINT shju.xu,shju.q,shju.l
NEXT i
CLOSE
9 楼
moz [专家分:37620] 发布于 2007-01-12 08:42:00
需要自行添加编辑按键,例如左右前后删等等,有关数值请参看HELP的SCANCODE
我来回复