home *** CD-ROM | disk | FTP | other *** search
-
- FUNCTION valid_count(txt$, l)
- ' checks to see if the text has a certain amount of characters
- ' (l)
-
- ' returns:
- ' 0 not the same length
- ' 1 same length - check confirmed
-
- IF LEN(txt$) = l THEN
- valid_count = 1
- ELSE
- valid_count = 0
- END IF
-
- END FUNCTION
-
- FUNCTION valid_digit(va, chk, bse)
- STATIC v$,c$,b$,n,l,v_v,v_c,d
- ' creates a check digit for a value with weight bytes chk and
- ' base value of bse. Returns the check digit code.
-
- ' Note that this code my be more than 1 byte (eg >9) so you
- ' might have to convert this down somehow.
- ' Also, values of each variable need to be positive. This is
- ' checked.
-
- ' Returns:
- ' -1 Value negative
- ' -2 Check digit negative
- ' -3 Base value negative
- ' -4 Lengths of value and check digit do not match
- ' error will occur if check digit or value start with 0
- ' Other values check digit (note this may include 0)
-
- v$ = STR$(va)
- IF LEFT$(v$, 1) = " " THEN
- v$ = RIGHT$(v$, LEN(v$) - 1)
- ELSE
- valid_digit = -1: EXIT FUNCTION
- END IF
-
- c$ = STR$(chk)
- IF LEFT$(c$, 1) = " " THEN
- c$ = RIGHT$(c$, LEN(c$) - 1)
- ELSE
- valid_digit = -2: EXIT FUNCTION
- END IF
-
- b$ = STR$(bse)
- IF LEFT$(b$, 1) = "-" THEN valid_digit = -3: EXIT FUNCTION
-
- IF LEN(v$) <> LEN(c$) THEN
- valid_digit = -4
- EXIT FUNCTION
- END IF
-
- n = 0
- FOR l = 1 TO LEN(v$)
- v_v = VAL(MID$(v$, l, 1))
- v_c = VAL(MID$(c$, l, 1))
-
- n = n + (v_v * v_c)
- NEXT l
-
- d = n MOD bse
- valid_digit = bse - d
-
- END FUNCTION
-
- FUNCTION valid_format(txt$, code$)
- STATIC a,b$,c$,valid
-
- ' N=number, L=letter, A=alpha numberic, S=space
-
- ' returns:
- ' 0 lengths of text and validation code different.
- ' 1 confired text string valid.
- ' -x. X contains the character position of the character that
- ' doesn't apply to the validation code.
-
- IF LEN(txt$) <> LEN(code$) THEN valid_format = 0: EXIT FUNCTION
-
- FOR a = 1 TO LEN(txt$)
- b$ = MID$(txt$, a, 1)
- c$ = MID$(code$, a, 1)
- IF b$ <> c$ THEN
- ' ie both letters are the same, indicating possible
- ' correctness, ignore letters
-
- valid = 0
- SELECT CASE c$
- CASE "S"
- IF b$ <> " " THEN valid = -1
- CASE "N"
- IF ASC(b$) < 48 OR ASC(b$) > 57 THEN valid = -1
- CASE "L"
- ' capital letter (65,90)
- IF ASC(b$) < 65 OR ASC(b$) > 90 THEN valid = -1
- CASE "l"
- ' small letter (97,122)
- IF ASC(b$) < 97 OR ASC(b$) > 122 THEN valid = -1
- CASE "A"
- ' both capital and numbers
- valid = -1
- IF ASC(b$) >= 48 AND ASC(b$) <= 90 THEN
- IF ASC(b$) <= 57 OR ASC(b$) >= 65 THEN valid = 1
- END IF
- CASE "a"
- ' both small and numbers
- valid = -1
- IF ASC(b$) >= 48 AND ASC(b$) <= 122 THEN
- IF ASC(b$) <= 57 OR ASC(b$) >= 97 THEN valid = 1
- END IF
- CASE ELSE
- ' other characters sub-standard
- valid = -1
- END SELECT
-
- END IF
-
- IF valid = -1 THEN
- ' Debug.Print valid, a
- EXIT FOR
- END IF
-
- NEXT
-
- IF valid = 0 THEN
- valid_format = 1
- ELSE
- valid_format = VAL("-" + STR$(a))
- END IF
-
- END FUNCTION
-
-
- FUNCTION valid_presence(txt$)
- ' checks to see if the text exists
- ' returns:
- ' 1 text exists
- ' 0 text doesn't exist
-
- IF txt$ = "" THEN
- valid_presence = 0
- ELSE
- valid_presence = 1
- END IF
-
- END FUNCTION
-
- FUNCTION valid_range(num, r1, r2)
- ' checks to see if a number is valid. Note this is designed
- ' for numerate values, text characters are best checked with
- ' valid_format.
-
- ' r1=start value (inclusive)
- ' r2=end value (inclusive)
- ' num=number to check
-
- ' returns:
- ' 1 check confimed, number is range
- ' 0 check failed, number out of range
-
- IF (num >= r1) AND (num <= r2) THEN
- valid_range = 1
- ELSE
- valid_range = 0
- End If
-
- END FUNCTION
-
-