回 帖 发 新 帖 刷新版面

主题:退出DO循环,有什麽好办法?

编个随机文件键盘输入的程序,为了随时退出,用的DO循环,本来想用KEY功能,怎麽试也不行,好象受WINDOWS限制(弹出个窗,需要办什麽事,我闹不懂);用UNTIL,在其它程序中,以某变量做条件,可行,可在本程序中,用一个“域”做条件,不行,加个变量,太罗索,很不方便,请问各位老师该如何?急!

回复列表 (共9个回复)

沙发

你设定的结束符是什么?
加个标志变量一般是比较简明的办法,如果你还觉得不够方便,只能说你在舍近求远

板凳

谢雪光君,出现了很怪的现象,今天没时间了,明日,程序和现象一并写上,再请解释。

3 楼

今又有时间,如下:
求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 楼

1.  PUT 应该只是笔误
2.  尽量避免使用 KEY( ),有很多不确定性.
3.  输出的是数据文件,奇怪不奇怪的并没什么.
4.  可以看看帮助文件,但就算是示例也不一定能准确运行.
5.  完全可以用 inkey$ 或其他标志所代替,把握更准更自由更自如.

5 楼

do    '等待输入某一键。。。。。按ESC退出
 do     
  a$=inkey$
 loop until a$<>""

'你的程序

locate 1,1:print a$;
loop until a$=chr$(27) '按ESC键退出


你还是跑QQ群:2737222  那里人多

6 楼

谢冷石君和MOZ君.用INKEY$很理想.

7 楼

再回冷石君:试过,不行,不如雪光君的加个变量,虽是每个记录多打一个回车。
但,你的延时,对我看长的输出很有好处,还要深谢!

8 楼

求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 楼

需要自行添加编辑按键,例如左右前后删等等,有关数值请参看HELP的SCANCODE

我来回复

您尚未登录,请登录后再回复。点此登录或注册