Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Challenge: Validate a code
#47
My entry. Uses longs! I know, BAD! Sad

Code:
'Is this BLITZTASTIC OR WHAT??!?!?

DECLARE FUNCTION validate.all% (file1$)
DECLARE FUNCTION num.exists% (n&)
DECLARE SUB load.valid.nums (file1$)
DIM SHARED num.max AS LONG, num.max2 AS LONG: num.max = 100000: num.max2 = num.max \ 16
DIM SHARED huge.array(1 TO num.max2) AS LONG
DIM SHARED bit2(0 TO 15) AS LONG
DIM SHARED num.amount AS INTEGER: num.amount = 20000
FOR I% = 0 TO 15: bit2(I%) = 2 ^ I%: NEXT I%

CLS

'OPEN "valid.txt" FOR OUTPUT AS #1
'FOR I% = 1 TO 20000
'a$ = LTRIM$(STR$(INT(RND * 100000)))
'PRINT #1, a$
'NEXT I%
'CLOSE
'SYSTEM

load.valid.nums ("valid.txt")

t1# = TIMER
PRINT validate.all%("valid.txt")
t2# = TIMER: PRINT "Time for"; num.amount; "values to be processed:"; t2# - t1#; "seconds."

'use num.exists%(n&) for individual numbers..
DO
INPUT n&
IF n& > 99999 THEN PRINT "Number bigger than 99999..."
IF n& < 0 THEN PRINT "Number smaller than 0..."
IF num.exists%(n&) THEN PRINT "Number exists!" ELSE PRINT "Number doesn't exist.."
LOOP

SUB load.valid.nums (file1$)
enter.char$ = CHR$(13): a1$ = " ": a2$ = "  ": num1$ = "": num2% = 0
OPEN file1$ FOR BINARY AS #1
j% = 1: FOR I% = 1 TO num.amount
num1$ = ""
GET #1, , a1$: IF a1$ = enter.char$ THEN GOTO v2
IF INSTR("0123456789", a1$) = 0 THEN GET #1, , a1$: GOTO v2
FOR j% = 1 TO 4
num1$ = num1$ + a1$
GET #1, , a1$: IF a1$ = enter.char$ THEN GOTO v1
IF INSTR("0123456789", a1$) = 0 THEN GET #1, , a1$: GOTO v2
NEXT j%
num1$ = num1$ + a1$
GET #1, , a1$
v1: IF a1$ <> enter.char$ THEN GET #1, , a1$: GOTO v2
num2& = VAL(num1$)
k% = num2& MOD 16
j% = num2& \ 16 + 1
temp& = huge.array(j%)
IF (temp& AND bit2(k%)) = 0 THEN huge.array(j%) = temp& + bit2(k%)
v2: GET #1, , a1$
NEXT I%
CLOSE
END SUB

FUNCTION num.exists% (n&)
k% = n& MOD 16
j% = n& \ 16 + 1
IF (huge.array(j%) AND bit2(k%)) THEN num.exists% = -1
END FUNCTION

FUNCTION validate.all% (file1$)
is.valid% = -1
enter.char$ = CHR$(13): a1$ = " ": a2$ = "  ": num1$ = "": num2% = 0
OPEN file1$ FOR BINARY AS #1
j% = 1: FOR I% = 1 TO num.amount
num1$ = ""
GET #1, , a1$: IF a1$ = enter.char$ THEN GOTO v2b
IF INSTR("0123456789", a1$) = 0 THEN GET #1, , a1$: GOTO v2b
FOR j% = 1 TO 4
num1$ = num1$ + a1$
GET #1, , a1$: IF a1$ = enter.char$ THEN GOTO v1b
IF INSTR("0123456789", a1$) = 0 THEN GET #1, , a1$: GOTO v2b
NEXT j%
num1$ = num1$ + a1$
GET #1, , a1$
v1b: IF a1$ <> enter.char$ THEN GET #1, , a1$: GOTO v2b
num2& = VAL(num1$)
k% = num2& MOD 16
j% = num2& \ 16 + 1
temp& = huge.array(j%)
IF (temp& AND bit2(k%)) = 0 THEN is.valid% = 0
v2b: GET #1, , a1$
NEXT I%
CLOSE
validate.all% = is.valid%
END FUNCTION
Peace cannot be obtained without war. Why? If there is already peace, it is unnecessary for war. If there is no peace, there is already war."

Visit www.neobasic.net to see rubbish in all its finest.
Reply


Messages In This Thread
Challenge: Validate a code - by Moneo - 07-27-2003, 05:15 AM
oooh - by Meg - 07-27-2003, 06:57 AM
Challenge: Validate a code - by Moneo - 07-27-2003, 08:00 AM
yikes. - by Meg - 07-27-2003, 10:54 AM
Challenge: Validate a code - by Blitz - 07-27-2003, 02:28 PM
Challenge: Validate a code - by Antoni Gual - 07-27-2003, 04:00 PM
Challenge: Validate a code - by Blitz - 07-27-2003, 04:14 PM
Challenge: Validate a code - by Blitz - 07-27-2003, 04:21 PM
Yeah you see - by seph - 07-28-2003, 02:05 AM
Challenge: Validate a code - by Moneo - 07-28-2003, 04:54 AM
Challenge: Validate a code - by Blitz - 07-28-2003, 05:30 AM
Challenge: Validate a code - by Moneo - 07-28-2003, 05:33 AM
Challenge: Validate a code - by Moneo - 07-28-2003, 05:39 AM
Challenge: Validate a code - by Blitz - 07-28-2003, 06:46 AM
Challenge: Validate a code - by Moneo - 07-28-2003, 06:59 AM
Challenge: Validate a code - by Moneo - 07-28-2003, 07:17 AM
Challenge: Validate a code - by Blitz - 07-28-2003, 07:51 AM
Challenge: Validate a code - by Antoni Gual - 07-28-2003, 02:34 PM
Challenge: Validate a code - by Agamemnus - 07-28-2003, 04:16 PM
Challenge: Validate a code - by Blitz - 07-28-2003, 04:46 PM
Challenge: Validate a code - by Blitz - 07-28-2003, 04:50 PM
Challenge: Validate a code - by Agamemnus - 07-28-2003, 04:57 PM
Challenge: Validate a code - by Blitz - 07-28-2003, 06:14 PM
Challenge: Validate a code - by Antoni Gual - 07-28-2003, 06:26 PM
Challenge: Validate a code - by Blitz - 07-28-2003, 09:01 PM
Challenge: Validate a code - by Moneo - 07-28-2003, 09:21 PM
Challenge: Validate a code - by Blitz - 07-28-2003, 09:25 PM
Challenge: Validate a code - by Moneo - 07-28-2003, 09:28 PM
Challenge: Validate a code - by Moneo - 07-28-2003, 09:36 PM
Challenge: Validate a code - by Antoni Gual - 07-28-2003, 09:52 PM
Challenge: Validate a code - by Moneo - 07-28-2003, 10:15 PM
Challenge: Validate a code - by Blitz - 07-28-2003, 10:55 PM
Challenge: Validate a code - by Moneo - 07-28-2003, 11:01 PM
Challenge: Validate a code - by Agamemnus - 07-29-2003, 02:21 AM
Challenge: Validate a code - by Moneo - 07-29-2003, 02:35 AM
Challenge: Validate a code - by Antoni Gual - 07-29-2003, 03:22 AM
Challenge: Validate a code - by Moneo - 07-29-2003, 05:28 AM
Fixed - by Meg - 07-29-2003, 06:45 AM
Challenge: Validate a code - by Moneo - 07-29-2003, 07:17 AM
Challenge: Validate a code - by Agamemnus - 07-29-2003, 09:09 PM
Challenge: Validate a code - by Moneo - 07-29-2003, 10:32 PM
Challenge: Validate a code - by Agamemnus - 07-29-2003, 10:41 PM
Challenge: Validate a code - by Agamemnus - 07-29-2003, 11:16 PM
Challenge: Validate a code - by Moneo - 07-29-2003, 11:33 PM
Challenge: Validate a code - by Agamemnus - 07-29-2003, 11:37 PM
Challenge: Validate a code - by Moneo - 07-29-2003, 11:53 PM
Challenge: Validate a code - by Blitz - 07-29-2003, 11:53 PM
Let's mutiny.. - by Agamemnus - 07-30-2003, 12:06 AM
Challenge: Validate a code - by Moneo - 07-30-2003, 12:10 AM
Challenge: Validate a code - by Agamemnus - 07-30-2003, 12:13 AM
Challenge: Validate a code - by Moneo - 07-30-2003, 12:17 AM
Challenge: Validate a code - by Agamemnus - 07-30-2003, 12:24 AM
Challenge: Validate a code - by Blitz - 07-30-2003, 12:44 AM
Challenge: Validate a code - by Antoni Gual - 07-30-2003, 01:11 AM
Challenge: Validate a code - by Moneo - 07-30-2003, 03:33 AM
Challenge: Validate a code - by Blitz - 07-30-2003, 05:03 AM
Challenge: Validate a code - by Agamemnus - 08-01-2003, 07:32 AM

Forum Jump:


Users browsing this thread: 1 Guest(s)