home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PROG_BAS / PRO98SRC.ZIP / VSET.BAS < prev    next >
BASIC Source File  |  1994-01-16  |  3KB  |  94 lines

  1. ' if database is open then scan for variable name in field list and replace
  2. ' database field content.  If variable name does not match a field name then
  3. ' replace or create a memory variable.
  4.  
  5. SUB VSET2 (byval VAR$, byval Value$)
  6.         VAR$=LTRIM$(RTRIM$(UCASE$(VAR$),ANY CHR$(32,0)),ANY CHR$(32,0))
  7.         'VALUE$=LTRIM$(RTRIM$(VALUE$))
  8.         IF INSTR(VAR$,".") THEN
  9.           N=INSTR(VAR$,".")
  10.           VM$=LEFT$(VAR$,N-1)
  11.           VS$=MID$(VAR$,N+1)+"$"+VM$
  12.       ARRAY SCAN VAR$(1),COLLATE UCASE, =VS$, TO i%
  13.         IF i% THEN
  14.              O%=CVI(LEFT$(VALUE$(i%),2))
  15.                  L%=CVI(RIGHT$(VALUE$(i%),2))
  16.                  ARRAY SCAN VAR$(1),COLLATE UCASE,=VM$, TO i%
  17.                  IF i% THEN
  18.  
  19.                   IF LEN(VALUE$)>L% THEN
  20.                    VALUE$=LEFT$(VALUE$,L%)
  21.                   ELSE
  22.                    VALUE$=VALUE$+SPACE$(L%-LEN(VALUE$))
  23.                   END IF
  24.  
  25.                   MID$(VALUE$(i%),O%,L%)=VALUE$
  26.                  ELSE
  27.                   ERROR 013
  28.                  END IF
  29.                 ELSE
  30.                  ERROR 103
  31.         END IF
  32.         EXIT SUB
  33.         END IF
  34.  
  35.  
  36.  
  37.                 IF LEN(VAR$) THEN
  38.                     ' Scan for name in database field
  39.             V%=%TRUE
  40. $IF NOT %NODBASE
  41.             IF dBASEOpen% THEN
  42.                 For i%=1 TO NumberOfFields?
  43.                                   IF RTRIM$(DBS(i%).FieldName,ANY CHR$(0,32))=VAR$ THEN
  44.                                   IF DBS(i%).FieldType="N" THEN
  45.                                 DBPutNField (DBS(i%).FieldName),VAL(VALUE$),e%
  46.                            ELSE
  47.                                 DBPutCField (DBS(i%).FieldName),VALUE$,e%
  48.                               END IF
  49.                               v%=%FALSE
  50.                               EXIT FOR
  51.                         END IF
  52.                         NEXT i%
  53.             END IF
  54. $ENDIF
  55.             IF v% THEN
  56.                               ARRAY SCAN VAR$(1),COLLATE UCASE, =VAR$, TO i%
  57.                             IF i% THEN
  58.                                 VALUE$(i%)=VALUE$
  59.                             ELSE
  60.                                 INCR NextVar%
  61.                                     VALUE$(NextVar%)=VALUE$
  62.                                     VAR$(NextVar%)=VAR$
  63.                             END IF
  64.                     END IF
  65.             END IF
  66. END SUB
  67.  
  68.  
  69. ' Clear the content of a memory variable
  70. SUB VCLEAR (byval VAR$)
  71.                 IF LEN(VAR$) THEN
  72.                           ARRAY SCAN VAR$(1),COLLATE UCASE, =VAR$, TO i%
  73.                         IF i% THEN
  74.                                 ARRAY DELETE VAR$(i%)
  75.                                 ARRAY DELETE VALUE$(i%)
  76.                             DECR NextVar%
  77.                         END IF
  78.                 END IF
  79. END SUB
  80.  
  81. SUB VCLEARALL (byval VAR$)
  82.                 IF LEN(VAR$) THEN
  83.                         DO
  84.                           ARRAY SCAN VAR$(1),FROM 1 TO LEN(VAR$), COLLATE UCASE, =VAR$, TO i%
  85.                         IF i% THEN
  86.                                 ARRAY DELETE VAR$(i%)
  87.                                 ARRAY DELETE VALUE$(i%)
  88.                             DECR NextVar%
  89.                         END IF
  90.                         LOOP WHILE i%
  91.                 END IF
  92. END SUB
  93.  
  94.