回 帖 发 新 帖 刷新版面

主题:回MOZ;求助

DECLARE SUB Split (X$(), y2$, z$)
DECLARE SUB MiddleCode (Code AS STRING)
SCREEN 12
ON ERROR GOTO ErrCode
DIM TucCode   AS STRING
DO
INPUT "", TucCode
TucCode = LCASE$(TucCode)
MiddleCode TucCode
LOOP
END
ErrCode:
PRINT "ErrorCode"
PRINT "Key Enter To Exit"
DO
LOOP UNTIL INKEY$ = CHR$(13)
END

SUB MiddleCode (Code AS STRING)
DIM SplitCode(LEN(Code)) AS STRING
DIM Codetmp              AS STRING
IF LEN(Code) = 0 THEN EXIT SUB
SELECT CASE MID$(Code, 1, 1)
CASE "*"
Codetmp = MID$(Code, INSTR(Code, "[") + 1)
Codetmp = MID$(Codetmp, 1, INSTR(Codetmp, "]") - 1)
Split SplitCode(), Codetmp, ";"
PRINT "*    ";
FOR a = 1 TO VAL(SplitCode(0))
PRINT SplitCode(a) + " ";
NEXT
PRINT
d = VAL(SplitCode(1))
FOR a = 2 TO VAL(SplitCode(0))
d = d * VAL(SplitCode(a))
NEXT
Codetmp = STR$(d)
PRINT "=    "; Codetmp
PRINT
CASE "+"
Codetmp = MID$(Code, INSTR(Code, "[") + 1)
Codetmp = MID$(Codetmp, 1, INSTR(Codetmp, "]") - 1)
Split SplitCode(), Codetmp, ";"
PRINT "+    ";
FOR a = 1 TO VAL(SplitCode(0))
PRINT SplitCode(a) + " ";
NEXT
PRINT
d = VAL(SplitCode(1))
FOR a = 2 TO VAL(SplitCode(0))
d = d + VAL(SplitCode(a))
NEXT
Codetmp = STR$(d)
PRINT "=    "; Codetmp
PRINT
CASE "-"
Codetmp = MID$(Code, INSTR(Code, "[") + 1)
Codetmp = MID$(Codetmp, 1, INSTR(Codetmp, "]") - 1)
PRINT "-    ";
FOR a = 1 TO VAL(SplitCode(0))
PRINT SplitCode(a) + " ";
NEXT
PRINT
 d = VAL(SplitCode(1))
FOR a = 2 TO VAL(SplitCode(0))
d = d - VAL(SplitCode(a))
NEXT
Codetmp = STR$(d)
PRINT "=    "; Codetmp
PRINT
CASE "\"
Codetmp = MID$(Code, INSTR(Code, "[") + 1)
Codetmp = MID$(Codetmp, 1, INSTR(Codetmp, "]") - 1)
Split SplitCode(), Codetmp, ";"
PRINT "\    ";
FOR a = 1 TO VAL(SplitCode(0))
PRINT SplitCode(a) + " ";
NEXT
PRINT
 d = VAL(SplitCode(1))
FOR a = 2 TO VAL(SplitCode(0))
d = d \ VAL(SplitCode(a))
NEXT
Codetmp = STR$(d)
PRINT "=    "; Codetmp
PRINT
CASE "%"
Codetmp = MID$(Code, INSTR(Code, "[") + 1)
Codetmp = MID$(Codetmp, 1, INSTR(Codetmp, "]") - 1)
Split SplitCode(), Codetmp, ";"
PRINT "%    ";
FOR a = 1 TO VAL(SplitCode(0))
PRINT SplitCode(a) + " ";
NEXT
PRINT
d = VAL(SplitCode(1))
FOR a = 2 TO VAL(SplitCode(0))
d = d MOD VAL(SplitCode(a))
NEXT
Codetmp = STR$(d)
PRINT "=    "; Codetmp
PRINT
CASE "/"
Codetmp = MID$(Code, INSTR(Code, "[") + 1)
Codetmp = MID$(Codetmp, 1, INSTR(Codetmp, "]") - 1)
Split SplitCode(), Codetmp, ";"
PRINT "/    ";
FOR a = 1 TO VAL(SplitCode(0))
PRINT SplitCode(a) + " ";
NEXT
PRINT
d = VAL(SplitCode(1))
FOR a = 2 TO VAL(SplitCode(0))
d = d / VAL(SplitCode(a))
NEXT
Codetmp = STR$(d)
PRINT "=    "; Codetmp
PRINT
CASE "^"
Codetmp = MID$(Code, INSTR(Code, "[") + 1)
Codetmp = MID$(Codetmp, 1, INSTR(Codetmp, "]") - 1)
Split SplitCode(), Codetmp, ";"
PRINT "^    ";
FOR a = 1 TO VAL(SplitCode(0))
PRINT SplitCode(a) + " ";
NEXT
PRINT
 d = VAL(SplitCode(1))
FOR a = 2 TO VAL(SplitCode(0))
d = d ^ VAL(SplitCode(a))
NEXT
Codetmp = STR$(d)
PRINT "=    "; Codetmp
PRINT
CASE "~"
Codetmp = MID$(Code, INSTR(Code, "[") + 1)
Codetmp = MID$(Codetmp, 1, INSTR(Codetmp, "]") - 1)
Split SplitCode(), Codetmp, ";"
PRINT "~    ";
FOR a = 1 TO VAL(SplitCode(0))
PRINT SplitCode(a) + " ";
NEXT
PRINT
 d = VAL(SplitCode(1))
FOR a = 2 TO VAL(SplitCode(0))
d = d XOR VAL(SplitCode(a))
NEXT
Codetmp = STR$(d)
PRINT "=    "; Codetmp
PRINT
CASE "@"
Codetmp = MID$(Code, INSTR(Code, "[") + 1)
Codetmp = MID$(Codetmp, 1, INSTR(Codetmp, "]") - 1)
Split SplitCode(), Codetmp, ";"
PRINT "@    ";
FOR a = 1 TO VAL(SplitCode(0))
PRINT SplitCode(a) + " ";
NEXT
PRINT
 d = VAL(SplitCode(1))
FOR a = 2 TO VAL(SplitCode(0))
d = d OR VAL(SplitCode(a))
NEXT
Codetmp = STR$(d)
PRINT "=   "; Codetmp
PRINT
CASE "#"
Codetmp = MID$(Code, INSTR(Code, "[") + 1)
Codetmp = MID$(Codetmp, 1, INSTR(Codetmp, "]") - 1)
Split SplitCode(), Codetmp, ";"
PRINT "#    ";
FOR a = 1 TO VAL(SplitCode(0))
PRINT SplitCode(a) + " ";
NEXT
PRINT
d = VAL(SplitCode(1))
FOR a = 2 TO VAL(SplitCode(0))
d = d AND VAL(SplitCode(a))
NEXT
Codetmp = STR$(d)
PRINT "=    "; Codetmp
PRINT
CASE "&"
Codetmp = MID$(Code, INSTR(Code, "[") + 1)
Codetmp = MID$(Codetmp, 1, INSTR(Codetmp, "]") - 1)
SELECT CASE Codetmp
CASE "0"
END
CASE "1"
CLS
END SELECT
END SELECT
END SUB

SUB Split (X$(), y2$, z$)
y$ = y2$ + z$
l% = LEN(z$)
i% = INSTR(y$, z$)
j% = 1
DO WHILE i%
   K% = K% + 1
   X$(K%) = MID$(y$, j%, i% - j%)
   j% = i% + l%
   i% = INSTR(j%, y$, z$)
LOOP
X$(0) = STR$(K%)
END SUB


上面的程序是个计算的;
运行还正常;
只是输入错误;
列如输入 *['as'ss's;
等不规则表达式时;
程序就有错误;
我想在MiddleCode过程设置错误陷阱;
可是QB提示错误信息;
所以我只能在在主过程里设置陷阱;
每次输入错误都要退出;烦;

回复列表 (共15个回复)

11 楼

能给个框架吗?

12 楼

弄不清楚你说的是什么问题.
如果是说图闪的事情的话,关键在于多尝试.
screen 12
DO WHILE INKEY$ = ""
   CLS
       LINE (15, 20)-(50, 50), 7, BF
   FOR i = 10 TO 200
       IF INKEY$ <> "" THEN EXIT DO
       LINE (i + 4, i + 9)-((i - 1) * 5, i + 9), 0
       LINE (i + 4, i + 9)-(i + 4, (i - 1) * 5), 0
       LINE ((i - 1) * 5, i + 10)-(i * 5, i * 5), 7, BF
       LINE (i + 5, (i - 1) * 5)-(i * 5, i * 5), 7, BF
       timer1# = TIMER
       DO UNTIL TIMER - timer1# > .4: LOOP
   NEXT
LOOP

13 楼

简单死了!!!
把MOZ干掉就行了!!!
====================
后面内容已被作者屏蔽
====================

14 楼


'SOS;
mov phos,40
mov phor,12
for i=1 to 10
jmp phor,1+i
next
intf phor,1
intf phor,7
intf phof,5
 
sub pc(dvvar as integer,dvda as integer)
dvvar=dvvar+dvda
end 

sub mov(dvvar as integer,dvda as integer)
dvvar=dvda
end sub

sub intf(dvvar,dvda as integer)
select case dvda
case 1
print davar
case 2
cls
case 3
cls 1
case 4
cls 2
case 5
end
case 6
print "error"
case 7
print "intf 7"
a$=input$(1)
dvvar=a$
end select
end sub

15 楼

{ 闷 }
program men;
 var
  lth:string;
 begin
  readln(lth);
 end.
end.

我来回复

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