home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 December / PCWorld_2000-12_cd.bin / Software / Topware / scrworx / _SETUP.1 / vbasic.slf < prev    next >
Text File  |  2000-07-13  |  3KB  |  102 lines

  1. DEFINT A-Z
  2.  
  3. DECLARE FUNCTION StrTrimLeft$ (a$, b$)
  4. DECLARE FUNCTION StrTrimRight$ (a$, b$)
  5. DECLARE FUNCTION StrTrim$ (a$, b$)
  6. DECLARE SUB StrSplitString (SplitString$, SplitChars$, SplitField$(), SplitCount%)
  7. DECLARE FUNCTION Min% (a%, b%)
  8. DECLARE FUNCTION StrInstrLeft% (SearchStart%, SearchIn$, SearchFor$)
  9. DECLARE FUNCTION StrAscii% (a$)
  10.  
  11. CLS
  12. DIM LineData$(1 TO 2)
  13.  
  14. WHILE NOT EOF(1)
  15.   LINE INPUT #1, l$
  16.   CALL StrSplitString(l$, ";", LineData$(), SplitCount)
  17.   IF SplitCount THEN
  18.     LineData$(1) = StrTrim$(LineData$(1), CHR$(9) + " ")
  19.     IF LEN(LineData$(1)) THEN
  20.       PRINT #2, "    " + CHR$(34) + LineData$(1) + CHR$(34) + ","
  21.     END IF
  22.   END IF
  23. WEND
  24. PRINT #2, "    NULL"
  25. PRINT #2, "};"
  26.  
  27. CLOSE 2
  28. CLOSE 1
  29. SYSTEM
  30.  
  31. FUNCTION Min% (a%, b%)
  32.   IF a% < b% THEN Min% = a% ELSE Min% = b%
  33. END FUNCTION
  34.  
  35. SUB StrSplitString (SplitString$, SplitChars$, SplitField$(), SplitCount)
  36.   StartIndex = LBOUND(SplitField$)
  37.   LastIndex = UBOUND(SplitField$)
  38.   ActualIndex& = StartIndex
  39.   SplitCount = 0
  40.  
  41.   LastPos = 1
  42.   FoundPos = StrInstrLeft(LastPos, SplitString$, SplitChars$ + CHR$(34))
  43.   GetDirect = 0
  44.   EndLoop = 0
  45.   TempString$ = ""
  46.   DO WHILE FoundPos > 0
  47.     FoundCharVal = StrAscii(MID$(SplitString$, FoundPos, 1))
  48.     PosDiff = (FoundPos - LastPos) + 1
  49.     SELECT CASE FoundCharVal
  50.     CASE 34
  51.       TempString$ = TempString$ + MID$(SplitString$, LastPos, PosDiff - 1)
  52.       SELECT CASE EndLoop
  53.       CASE 0
  54.         EndLoop = 2
  55.       CASE 3
  56.         EndLoop = 0
  57.       END SELECT
  58.     CASE ELSE
  59.       TempString$ = TempString$ + MID$(SplitString$, LastPos, PosDiff - 1)
  60.       SplitField$(ActualIndex&) = TempString$
  61.       TempString$ = ""
  62.       ActualIndex& = ActualIndex& + 1
  63.       IF ActualIndex& > LastIndex THEN
  64.         ActualIndex& = LastIndex
  65.         EndLoop = 1
  66.       END IF
  67.     END SELECT
  68.     SELECT CASE EndLoop
  69.     CASE 0
  70.       DO
  71.         LastPos = FoundPos + 1
  72.         FoundPos = StrInstrLeft(LastPos, SplitString$, SplitChars$)
  73.       LOOP WHILE LastPos = FoundPos
  74.       FoundPos = StrInstrLeft(LastPos, SplitString$, SplitChars$ + CHR$(34))
  75.     CASE 1
  76.       FoundPos = 0
  77.       LastPos = LEN(SplitString$) + 1
  78.     CASE 2
  79.       EndLoop = 3
  80.       LastPos = FoundPos + 1
  81.       FoundPos = StrInstrLeft(LastPos, SplitString$, CHR$(34))
  82.       IF FoundPos = 0 THEN
  83.        SplitString$ = SplitString$ + CHR$(34)
  84.        FoundPos = LEN(SplitString$)
  85.       END IF
  86.     END SELECT
  87.   LOOP
  88.   IF EndLoop = 0 THEN
  89.     IF LEN(TempString$) > 0 THEN
  90.       SplitField$(ActualIndex&) = TempString$
  91.     ELSEIF LastPos <= LEN(SplitString$) THEN
  92.       SplitField$(ActualIndex&) = MID$(SplitString$, LastPos)
  93.     ELSE
  94.       ActualIndex& = ActualIndex& - 1
  95.     END IF
  96.   END IF
  97.   FOR a = ActualIndex& + 1 TO LastIndex
  98.     SplitField$(a) = ""
  99.   NEXT
  100.   SplitCount = (ActualIndex& - StartIndex) + 1
  101. END SUB
  102.