|
Cyperium
|
 |
« on: January 24, 2010, 04:19:52 PM » |
|
formatmultispace$ - takes away multiple spaces, if indent is 1 then it ignores the leading spaces. formatcommaop$ - formats commas and operands including the type suffixes. formatparanteses$ - formats the paranteses. formatremovecomma$ - removes unwanted spaces before commas, also adds a space before the first ( in a sub, function or declare statement. formatkeywords$ - formats the keywords according to a keyword list (array) and a keytype list (array), the keytype should be either "statement" or "function", the numkey parameter should be the number of keys in the list. formatremovestuff$ - removes unwanted single spaces (and other things) according to what is around it. the order is important, this is the order I used:1: formatmultispace$ 2: formatcommaop$ 3: formatparanteses$ 4: formatcommaop$ 5: formatremovecomma$ 6: formatkeywords$ 7: formatremovestuff$ 8: formatmultispace$ FUNCTION formatmultispace$ (text AS STRING, indent) 'formatting multiple spaces to one space
DIM text2 AS STRING
IF LEN(text) >= 1 THEN IF indent = 1 THEN FOR start = 1 TO LEN(text) IF MID$(text, start, 1) <> " " THEN EXIT FOR NEXT ELSE start = 1 END IF DO e = INSTR(start, text, " ") IF e THEN text = MID$(text, 1, e) + MID$(text, e + 2) ELSE formatmultispace$ = text EXIT DO END IF LOOP END IF END FUNCTION
FUNCTION formatcommaop$ (text AS STRING) 'formatting comma signs and operands (<=>)
look = 0 IF LEN(text) >= 3 THEN DO look = look + 1 IF MID$(text, look, 2) = "=<" THEN MID$(text, look, 2) = "<=" IF MID$(text, look, 2) = "=>" THEN MID$(text, look, 2) = ">=" IF MID$(text, look, 2) = "><" THEN MID$(text, look, 2) = "<>" IF MID$(text, look, 1) = "=" AND MID$(text, look - 1, 1) <> "<" AND MID$(text, look - 1, 1) <> ">" AND MID$(text, look - 1, 1) <> " " THEN text = MID$(text, 1, look - 1) + " " + MID$(text, look) END IF IF LEN(text) > look THEN IF MID$(text, look, 1) = "=" AND MID$(text, look + 1, 1) <> " " THEN text = MID$(text, 1, look) + " " + MID$(text, look + 1) END IF END IF IF MID$(text, look, 1) = "<" AND MID$(text, look - 1, 1) <> " " AND MID$(text, look - 1, 1) <> ">" AND MID$(text, look - 1, 1) <> "=" THEN text = MID$(text, 1, look - 1) + " " + MID$(text, look) END IF IF LEN(text) > look THEN IF MID$(text, look, 1) = "<" AND MID$(text, look + 1, 1) <> " " AND MID$(text, look + 1, 1) <> ">" AND MID$(text, look + 1, 1) <> "=" THEN text = MID$(text, 1, look) + " " + MID$(text, look + 1) END IF END IF IF LEN(text) > look THEN IF MID$(text, look, 1) = ">" AND MID$(text, look + 1, 1) <> " " AND MID$(text, look + 1, 1) <> "=" THEN text = MID$(text, 1, look) + " " + MID$(text, look + 1) END IF END IF IF MID$(text, look, 1) = ">" AND MID$(text, look - 1, 1) <> " " AND MID$(text, look - 1, 1) <> "<" THEN text = MID$(text, 1, look - 1) + " " + MID$(text, look) END IF IF MID$(text, look, 1) = "+" AND MID$(text, look - 1, 1) <> " " THEN text = MID$(text, 1, look - 1) + " " + MID$(text, look) END IF IF LEN(text) > look THEN IF MID$(text, look, 1) = "+" AND MID$(text, look + 1, 1) <> " " THEN text = MID$(text, 1, look) + " " + MID$(text, look + 1) END IF END IF IF MID$(text, look, 1) = "-" AND MID$(text, look - 1, 1) <> " " THEN text = MID$(text, 1, look - 1) + " " + MID$(text, look) END IF IF LEN(text) > look THEN IF MID$(text, look, 1) = "-" AND MID$(text, look + 1, 1) <> " " THEN text = MID$(text, 1, look) + " " + MID$(text, look + 1) END IF END IF IF MID$(text, look, 1) = "*" AND MID$(text, look - 1, 1) <> " " THEN text = MID$(text, 1, look - 1) + " " + MID$(text, look) END IF IF LEN(text) > look THEN IF MID$(text, look, 1) = "*" AND MID$(text, look + 1, 1) <> " " THEN text = MID$(text, 1, look) + " " + MID$(text, look + 1) END IF END IF IF MID$(text, look, 1) = "/" AND MID$(text, look - 1, 1) <> " " THEN text = MID$(text, 1, look - 1) + " " + MID$(text, look) END IF IF LEN(text) > look THEN IF MID$(text, look, 1) = "/" AND MID$(text, look + 1, 1) <> " " THEN text = MID$(text, 1, look) + " " + MID$(text, look + 1) END IF END IF IF MID$(text, look, 1) = "\" AND MID$(text, look - 1, 1) <> " " THEN text = MID$(text, 1, look - 1) + " " + MID$(text, look) END IF IF LEN(text) > look THEN IF MID$(text, look, 1) = "\" AND MID$(text, look + 1, 1) <> " " THEN text = MID$(text, 1, look) + " " + MID$(text, look + 1) END IF END IF IF MID$(text, look, 1) = "^" AND MID$(text, look - 1, 1) <> " " THEN text = MID$(text, 1, look - 1) + " " + MID$(text, look) END IF IF LEN(text) > look THEN IF MID$(text, look, 1) = "^" AND MID$(text, look + 1, 1) <> " " THEN text = MID$(text, 1, look) + " " + MID$(text, look + 1) END IF END IF IF LEN(text) > look THEN IF MID$(text, look, 1) = "," AND MID$(text, look + 1, 1) <> " " THEN text = MID$(text, 1, look) + " " + MID$(text, look + 1) END IF END IF IF LEN(text) > look THEN IF MID$(text, look, 1) = ":" AND MID$(text, look + 1, 1) <> " " THEN text = MID$(text, 1, look) + " " + MID$(text, look + 1) END IF END IF IF LEN(text) > look THEN IF MID$(text, look, 1) = ";" AND MID$(text, look + 1, 1) <> " " THEN text = MID$(text, 1, look) + " " + MID$(text, look + 1) END IF END IF 'variable types IF LEN(text) > look THEN IF MID$(text, look, 1) = "$" AND MID$(text, look + 1, 1) <> " " AND MID$(text, look + 1, 1) <> "(" AND MID$(text, look + 1, 1) <> ")" THEN text = MID$(text, 1, look) + " " + MID$(text, look + 1) END IF END IF IF LEN(text) > look THEN IF MID$(text, look, 1) = "%" AND MID$(text, look + 1, 1) <> " " AND MID$(text, look + 1, 1) <> "%" AND MID$(text, look + 1, 1) <> "(" AND MID$(text, look + 1, 1) <> ")" THEN text = MID$(text, 1, look) + " " + MID$(text, look + 1) END IF END IF IF LEN(text) > look THEN IF MID$(text, look, 1) = "!" AND MID$(text, look + 1, 1) <> " " AND MID$(text, look + 1, 1) <> "(" AND MID$(text, look + 1, 1) <> ")" THEN text = MID$(text, 1, look) + " " + MID$(text, look + 1) END IF END IF IF LEN(text) > look THEN IF MID$(text, look, 1) = "#" AND MID$(text, look + 1, 1) <> " " AND MID$(text, look + 1, 1) <> "#" AND MID$(text, look + 1, 1) <> "(" AND MID$(text, look + 1, 1) <> ")" THEN text = MID$(text, 1, look) + " " + MID$(text, look + 1) END IF IF MID$(text, look, 1) = "&" AND MID$(text, look + 1, 1) <> " " AND MID$(text, look + 1, 1) <> "&" AND MID$(text, look + 1, 1) <> "H" AND MID$(text, look + 1, 1) <> "O" AND MID$(text, look + 1, 1) <> "(" AND MID$(text, look + 1, 1) <> ")" THEN text = MID$(text, 1, look) + " " + MID$(text, look + 1) END IF IF MID$(text, look, 1) = "`" AND MID$(text, look + 1, 1) <> " " AND MID$(text, look + 1, 1) <> "(" AND MID$(text, look + 1, 1) <> ")" THEN text = MID$(text, 1, look) + " " + MID$(text, look + 1) END IF IF MID$(text, look, 1) = ")" AND (MID$(text, look + 1, 1) = ">" OR MID$(text, look + 1, 1) = "<" OR MID$(text, look + 1, 1) = "=") THEN text = MID$(text, 1, look) + " " + MID$(text, look + 1) END IF IF UCASE$(MID$(text, look, 4)) = ")OR " OR UCASE$(MID$(text, look, 5)) = ")XOR " OR UCASE$(MID$(text, look, 5)) = ")AND " OR UCASE$(MID$(text, look, 5)) = ")NOT " OR UCASE$(MID$(text, look, 5)) = ")IMP " THEN text = MID$(text, 1, look) + " " + MID$(text, look + 1) END IF IF UCASE$(MID$(text, look, 5)) = " XOR(" OR UCASE$(MID$(text, look, 5)) = " AND(" OR UCASE$(MID$(text, look, 5)) = " NOT(" OR UCASE$(MID$(text, look, 5)) = " IMP(" THEN text = MID$(text, 1, look + 3) + " " + MID$(text, look + 4) END IF IF UCASE$(MID$(text, look, 5)) = ")XOR(" OR UCASE$(MID$(text, look, 5)) = ")AND(" OR UCASE$(MID$(text, look, 5)) = ")NOT(" OR UCASE$(MID$(text, look, 5)) = ")IMP(" THEN text = MID$(text, 1, look) + " " + MID$(text, look + 1, 3) + " " + MID$(text, look + 4) END IF IF UCASE$(MID$(text, look, 4)) = ")OR(" THEN text = MID$(text, 1, look) + " " + MID$(text, look + 1, 2) + " " + MID$(text, look + 3) END IF IF UCASE$(MID$(text, look, 4)) = " OR(" THEN text = MID$(text, 1, look + 2) + " " + MID$(text, look + 3) END IF END IF IF look >= LEN(text) THEN EXIT DO LOOP END IF formatcommaop$ = text END FUNCTION
FUNCTION formatparanteses$ (text AS STRING) IF LEN(text) >= 1 THEN look = 0 DO look = look + 1 IF LEN(text) >= look + 1 THEN IF MID$(text, look, 1) = "(" AND MID$(text, look + 1, 1) = " " AND LEN(text) <> look THEN text = MID$(text, 1, look) + MID$(text, look + 2) look = look - 1 END IF END IF IF look > LEN(text) THEN EXIT DO LOOP look = 0 DO look = look + 1 IF MID$(text, look, 1) = ")" AND MID$(text, look - 1, 1) = " " AND LEN(text) <> look THEN text = MID$(text, 1, look - 2) + MID$(text, look) look = look - 1 END IF IF look > LEN(text) THEN EXIT DO LOOP look = 0 DO look = look + 1 IF MID$(text, look, 1) = "(" AND MID$(text, look - 1, 1) = " " AND LEN(text) <> look THEN IF look - 2 > 1 THEN looky = ASC(MID$(text, look - 2, 1)) IF looky = 96 OR looky = 126 OR (looky >= 34 AND looky < 42) OR looky = 33 OR looky = 32 OR (looky > 47 AND looky < 58) OR (looky > 64 AND looky < 91) OR (looky > 96 AND looky < 123) THEN text = MID$(text, 1, look - 2) + MID$(text, look) look = look - 1 END IF END IF IF look >= LEN(text) THEN EXIT DO LOOP END IF formatparanteses$ = text END FUNCTION
FUNCTION formatremovecomma$ (text AS STRING) DO lol = lol + 1 checking$ = " ," remove = 1 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN IF lol > 2 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) ELSE text = LTRIM$(text) IF lol > 2 THEN lol = lol - 1 END IF LOOP UNTIL lol >= LEN(text)
IF LCASE$(MID$(LTRIM$(text), 1, 9)) = "function " OR LCASE$(MID$(LTRIM$(text), 1, 4)) = "sub " OR LCASE$(MID$(LTRIM$(text), 1, 8)) = "declare " THEN paraloc = INSTR(1, text, "(") IF paraloc THEN IF MID$(text, paraloc - 1, 1) <> " " THEN text = MID$(text, 1, paraloc - 1) + " " + MID$(text, paraloc) END IF END IF formatremovecomma$ = text END FUNCTION
FUNCTION formatkeywords$ (text AS STRING, numkey, keyword() AS STRING, keytype() AS STRING) 'keytype can be function or statement (operators etc. formats as statements), "(function)" or "(statement)" works too.
FOR keynum = 1 TO numkey morekey = 1 DO startofloop: posikey = INSTR(morekey, LCASE$(text), LCASE$(keyword(keynum))) lenokey = LEN(keyword(keynum)) IF posikey THEN 'found keyword, now determine if it is a valid one. datafound = 0 FOR chdata = posikey TO 1 STEP -1 IF MID$(LCASE$(text), posikey, lenokey) = "data" THEN EXIT FOR IF chdata > 1 THEN IF MID$(text, chdata, 1) = ":" THEN EXIT FOR IF LCASE$(MID$(text, chdata, 6)) = " data " THEN datafound = 1: EXIT FOR END IF IF chdata = 1 AND LCASE$(MID$(text, chdata, 5)) = "data " THEN datafound = 1: EXIT FOR NEXT IF datafound = 1 THEN morekey = posikey + 1: GOTO startofloop morekey = posikey + 1 IF posikey = 1 THEN 'it starts at the first position so no need to check that. 'checking the end position: IF lenokey < LEN(text) THEN ascii = ASC(text, lenokey + 1) IF ((ascii >= 32 AND ascii < 48) OR (ascii > 57 AND ascii < 63)) AND ascii <> 46 THEN IF INSTR(1, keytype(keynum), "statement") THEN IF ascii = 32 OR ascii = 0 THEN MID$(text, 1, lenokey) = UCASE$(MID$(text, 1, lenokey)) IF ascii <> 32 AND ascii <> 0 AND ascii <> 58 AND ascii <> 59 THEN text = UCASE$(MID$(text, 1, lenokey)) + " " + MID$(text, lenokey + 1) ELSE text = UCASE$(MID$(text, 1, lenokey)) + MID$(text, lenokey + 1) END IF END IF END IF IF lenokey = LEN(text) THEN text = UCASE$(text) END IF IF posikey > 1 THEN fascii = ASC(text, posikey - 1) IF ((fascii >= 32 AND fascii < 48) OR (fascii > 57 AND fascii < 63)) AND fascii <> 46 THEN validkey = 0 IF posikey + lenokey > LEN(text) THEN validkey = 1 IF posikey + lenokey <= LEN(text) THEN EASCII = ASC(text, posikey + lenokey) IF ((EASCII >= 32 AND EASCII < 48) OR (EASCII > 57 AND EASCII < 63)) AND EASCII <> 46 THEN validkey = 1 END IF END IF IF validkey = 1 THEN
IF INSTR(1, keytype(keynum), "statement") THEN IF EASCII = 32 OR EASCII = 0 THEN MID$(text, posikey, lenokey) = UCASE$(MID$(text, posikey, lenokey)) IF EASCII <> 32 AND EASCII <> 0 AND EASCII <> 58 AND EASCII <> 59 THEN text = MID$(text, 1, posikey - 1) + UCASE$(MID$(text, posikey, lenokey)) + " " + MID$(text, posikey + lenokey) ELSE text = MID$(text, 1, posikey - 1) + UCASE$(MID$(text, posikey, lenokey)) + MID$(text, posikey + lenokey) IF fascii <> 32 AND fascii <> 0 THEN text = MID$(text, 1, posikey - 1) + " " + MID$(text, posikey) ELSE MID$(text, posikey, lenokey) = UCASE$(MID$(text, posikey, lenokey)) END IF END IF END IF END IF END IF LOOP UNTIL posikey = 0 NEXT
formatkeywords$ = text END FUNCTION
FUNCTION formatremovestuff$ (text AS STRING) 'This function removes unwanted single spaces. 'It also deals with other things related to removal. IF LEN(text) >= 2 THEN DO lol = lol + 1 checking$ = "mid$ (" remove = 5 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "( mid$" remove = 2 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "( screen" remove = 2 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "= screen (" remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "+ screen (" remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "- screen (" remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "(screen (" remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "( screen (" remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "^ screen (" remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "\ screen (" remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "/ screen (" remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " or screen (" remove = 11 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " and screen (" remove = 12 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " xor screen (" remove = 12 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " imp screen (" remove = 12 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " not screen (" remove = 12 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " inkey$ )" remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "( inkey$" remove = 2 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " integer " remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " single " remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " double " remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " long " remove = 6 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " then " remove = 6 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ AND (lol + remove + 1 > LEN(text)) THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "call interruptx (" remove = 16 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN MID$(text, lol + 4, LEN(checking$)) = " InterruptX (" text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "( _clipboard$" remove = 2 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "as string ," remove = 10 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "as string )" remove = 10 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " integer ," remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " integer )" remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " as # " remove = 6 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "print # " remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ AND lol = 1 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "input # " remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ AND lol = 1 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "get # " remove = 6 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ AND lol = 1 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "put # " remove = 6 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ AND lol = 1 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "write # " remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ AND lol = 1 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "close # " remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ AND lol = 1 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " print # " remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " input # " remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " get # " remove = 7 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " put # " remove = 7 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " write # " remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " close # " remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " long ," remove = 6 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " long )" remove = 6 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " single ," remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " single )" remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " double ," remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " double )" remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " _float ," remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " _float )" remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " _bit ," remove = 6 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " _bit )" remove = 6 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " any ," remove = 5 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " any )" remove = 5 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " _byte ," remove = 7 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " _byte )" remove = 7 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " _integer64 ," remove = 12 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " _integer64 )" remove = 12 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " $" remove = 1 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN IF lol > 2 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) ELSE text = LTRIM$(text) IF lol > 2 THEN lol = lol - 1 END IF checking$ = " %" remove = 1 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN IF lol > 2 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) ELSE text = LTRIM$(text) IF lol > 2 THEN lol = lol - 1 END IF checking$ = " !" remove = 1 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN IF lol > 2 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) ELSE text = LTRIM$(text) IF lol > 2 THEN lol = lol - 1 END IF checking$ = " :" remove = 1 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN IF lol > 2 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) ELSE text = LTRIM$(text) IF lol > 2 THEN lol = lol - 1 END IF checking$ = " ," remove = 1 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN IF lol <= 2 THEN text = LTRIM$(text) END IF checking$ = " ;" remove = 1 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN IF lol > 2 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) ELSE text = LTRIM$(text) IF lol > 2 THEN lol = lol - 1 END IF checking$ = " & " remove = 1 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN IF lol > 2 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) ELSE text = LTRIM$(text) IF lol > 2 THEN lol = lol - 1 END IF checking$ = "= =" remove = 1 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN IF lol > 2 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) ELSE text = LTRIM$(text) IF lol > 2 THEN lol = lol - 1 END IF checking$ = "= +" remove = 3 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "* +" remove = 3 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "/ +" remove = 3 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "- +" remove = 3 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "^ +" remove = 3 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "\ +" remove = 3 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "> - " remove = 4 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "> +" remove = 3 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "< - " remove = 4 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "< +" remove = 3 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "<> - " remove = 5 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "<> +" remove = 4 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = ">= +" remove = 4 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "<= +" remove = 4 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "> >" remove = 1 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN IF lol > 2 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "< <" remove = 1 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN IF lol > 2 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) ELSE text = LTRIM$(text) IF lol > 2 THEN lol = lol - 1 END IF checking$ = "+ +" remove = 1 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN IF lol > 2 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) ELSE text = LTRIM$(text) IF lol > 2 THEN lol = lol - 1 END IF checking$ = "$ ," remove = 2 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN IF lol > 2 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) ELSE text = LTRIM$(text) IF lol > 2 THEN lol = lol - 1 END IF checking$ = "+ - " remove = 4 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "= - " remove = 4 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "- - " remove = 4 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "* - " remove = 4 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "^ - " remove = 4 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = ", - " remove = 4 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "; - " remove = 4 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "( - " remove = 4 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "( -" remove = 2 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " or - " remove = 6 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " and - " remove = 7 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " xor - " remove = 7 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " imp - " remove = 7 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " not - " remove = 7 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " to - " remove = 6 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " step - " remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " case - " remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " data - " remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "case - " remove = 7 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ AND lol = 1 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "data - " remove = 7 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ AND lol = 1 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " )" remove = 1 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN IF lol > 2 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) ELSE text = LTRIM$(text) IF lol > 2 THEN lol = lol - 1 END IF checking$ = "( " remove = 2 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN IF lol >= 1 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) ELSE text = LTRIM$(text) IF lol > 1 THEN lol = lol - 1 END IF LOOP UNTIL lol >= LEN(text) END IF formatremovestuff$ = text END FUNCTION
Note; replace formatremovestuff$ with the version at the last post, since this post isn't updated anymore due to size restrictions.
|
|
|
|
« Last Edit: April 02, 2010, 06:46:47 PM by Cyperium »
|
Logged
|
The downloads for dqb2qb64 and Venture are currently down, links will be shown at the next release of dqb2qb64. Download my custom editor for QB64 ( here (zip)).
|
|
|
|
Clippy
|
 |
« Reply #1 on: January 24, 2010, 04:56:03 PM » |
|
Did you think about:
SELECT CASE mid$(text,look,2) CASE "=<": mid$(text,look,2) = "<="
Ted
|
|
|
|
|
Logged
|
|
|
|
|
Cyperium
|
 |
« Reply #2 on: January 24, 2010, 05:28:32 PM » |
|
Yes  , even ><! if mid$(text,look,2) = "=<" then mid$(text,look,2) = "<=" if mid$(text,look,2) = "=>" then mid$(text,look,2) = ">=" if mid$(text,look,2) = "><" then mid$(text,look,2) = "<>"
Didn't use SELECT CASE though, the issues were too specific. The - sign is somewhat a complex issue (yes, I see everything as issues) since it can be formatted "a = -1" as well as "a = a - 1", will add that ability later. Also I have edited the code to include support for the - sign (the a = a - 1 version).
|
|
|
|
« Last Edit: January 24, 2010, 05:36:18 PM by Cyperium »
|
Logged
|
The downloads for dqb2qb64 and Venture are currently down, links will be shown at the next release of dqb2qb64. Download my custom editor for QB64 ( here (zip)).
|
|
|
|
Clippy
|
 |
« Reply #3 on: January 24, 2010, 05:50:09 PM » |
|
Well I don't see why it couldn't be used. But it is already coded so why change it.? It would have saved some repetitious typing though...
You can never figure out what a person will type, but QB managed -1 well. It knew somehow. How about if there is a variable on both sides of the = sign it becomes - 1? I dunno.
|
|
|
|
|
Logged
|
|
|
|
|
Cyperium
|
 |
« Reply #4 on: January 24, 2010, 05:57:36 PM » |
|
Yes, I will have to think about it for a while. I'm sure a solution pops up sooner or later (it's probably easier than I think though, I have a tendency to complicate things).
|
|
|
|
|
Logged
|
The downloads for dqb2qb64 and Venture are currently down, links will be shown at the next release of dqb2qb64. Download my custom editor for QB64 ( here (zip)).
|
|
|
urganda
Newbie

Posts: 22
|
 |
« Reply #5 on: January 25, 2010, 08:39:07 AM » |
|
Hey, that would be very useful to me, since my gwbasic binary -> gwbasic ascii conversor does not make a good management of spaces.
I've found very gwbasic programs where I typed "=>" instead of ">=", also. Modern basics treat "=>" as a special operator, old qbasic replaces it with ">=", gw-basic treats both operators as the same operator. So having a conversion utility is good for me.
I thank you for not using "CASE" instructions... that will increase backwards portability in my program...
|
|
|
|
|
Logged
|
|
|
|
|
Cyperium
|
 |
« Reply #6 on: January 25, 2010, 09:34:42 AM » |
|
Glad to hear it will be of use to you!
Yes, the reason I used IF statements is that they are easier to manage, especially when I am uncertain as to what special cases might exist in each formatting (better to treat each one individually).
|
|
|
|
|
Logged
|
The downloads for dqb2qb64 and Venture are currently down, links will be shown at the next release of dqb2qb64. Download my custom editor for QB64 ( here (zip)).
|
|
|
|
Clippy
|
 |
« Reply #7 on: January 25, 2010, 12:14:32 PM » |
|
Cy, I liked you code so much that I used the first 3 in a SELECT CASE demonstration of editing text. I had been looking for something like that.
The majority of your other tests check 2 values so SELECT CASE would not have been able to be used anyhow.
Ted
|
|
|
|
|
Logged
|
|
|
|
|
Cyperium
|
 |
« Reply #8 on: January 26, 2010, 09:41:20 AM » |
|
Ok, glad to hear that. I just noticed a small bug with the formatparanteses$ function, since I've used the formatting on the code I posted I could see that it doesn't add a space before the paranteses since it is treated as a variable:
Example:
avariable(nospace)
OR (space)
This "how to discern variables from statements" might need checking valid statements. I would think that QB did this by analysing the code first when loading it into memory (as tokens), I won't deal with it that way but I might try something similiar, I need to recognise statements anyway when doing uppercasing and a ordinary statement (as in 'not function') should always have a space in front of it anyway (or a semicolon/comma) so I could check for that in the formatuppercase$ function I will be doing.
In my QB64 editor program I noticed that there is a bug with the REM formatting, but this doesn't have to do with the functions posted here but rather how the program takes the string apart.
I think that the -1 issue might be as simple as checking if there is a operand (=,+,-,etc.) 2 columns before the minus sign (then it shouldn't add the space and if there is a space - remove it), will try that later.
|
|
|
|
« Last Edit: January 26, 2010, 09:48:22 AM by Cyperium »
|
Logged
|
The downloads for dqb2qb64 and Venture are currently down, links will be shown at the next release of dqb2qb64. Download my custom editor for QB64 ( here (zip)).
|
|
|
|
Galleon
|
 |
« Reply #9 on: January 26, 2010, 01:02:43 PM » |
|
This "how to discern variables from statements" might need checking valid statements. Hence why auto-formatting is integrated into the QB64 compiler. The IDE 'module' simply checks to see whether an auto-formatted version of a line is available after passing it to the compiler. I'm interested in where you're going with this Cyperium, but I can tell you that getting the spacing perfect in your program will require a lot more work.
|
|
|
|
|
Logged
|
|
|
|
|
Cyperium
|
 |
« Reply #10 on: January 27, 2010, 11:27:05 AM » |
|
Indeed that might be the case, I'm going along with this as I see it right now as I have little to none experience with this before. I'm glad that it formatted almost everything correct in everything I tried though, if you have examples where the program would fail I would be glad to hear it, though I encourage you to work on QB64 instead  lol.
|
|
|
|
|
Logged
|
The downloads for dqb2qb64 and Venture are currently down, links will be shown at the next release of dqb2qb64. Download my custom editor for QB64 ( here (zip)).
|
|
|
|
Galleon
|
 |
« Reply #11 on: February 13, 2010, 02:44:54 PM » |
|
OPEN "myfile.bin" FOR RANDOM SHARED AS #1 LEN=6*a
|
|
|
|
|
Logged
|
|
|
|
|
Cyperium
|
 |
« Reply #12 on: February 13, 2010, 04:32:19 PM » |
|
The current version of the editor formats it as this... OPEN "myfile.bin" FOR RANDOM SHARED AS # 1 LEN = 6 * a Notice the # 1. I solved it with this. checking$ = " as # " remove = 6 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF Where lol just loops to the len(text), this way I can solve the "quirks". Thank you Galleon, I feel bad that I didn't report the DATA problem right away, will do if anything similar pops up! EDIT: I have edited the OP with the changes and added the other formatting functions that I use for the editor. I also updated all the functions to their latest version. Here's the DATA I use for the formatkeywords$ function: DATA "_ALPHA", "(function)", "_ALPHA32", "(function)", "_AUTODISPLAY", "(statement)", "_BACKGROUNDCOLOR", "(function)", "_BIT", "(statement)", "_BLEND", "(statement)", "_BLEND", "(function)", "_BLUE", "(function)", "_BLUE32", "(function)", "_BYTE", "(statement)" DATA "_CLEARCOLOR", "(statement)", "_CLEARCOLOR", "(function)", "_CLIP", "(statement)", "_CLIPBOARD$", "(function)", "_CLIPBOARD$", "(statement)", "_CONNECTED", "(function)", "_CONNECTIONADDRESS", "(function)", "_COPYIMAGE", "(function)", "_COPYPALETTE", "(statement)", "_CV", "(function)" DATA "_DEFAULTCOLOR", "(function)", "_DEFINE", "(statement)", "_DELAY", "(statement)", "_DEST", "(statement)", "_DEST", "(function)", "_DISPLAY", "(statement)", "_DISPLAY", "(function)", "_DONTBLEND", "(statement)", "_ERRORLINE", "(function)", "_EXIT", "(function)" DATA "_FLOAT", "(statement)", "_FONT", "(statement)", "_FONT", "(function)", "_FONTHEIGHT", "(function)", "_FONTWIDTH", "(function)", "_FREEFONT", "(statement)", "_FREEIMAGE", "(statement)", "_FREETIMER", "(function)", "_FULLSCREEN", "(function)", "_FULLSCREEN", "(statement)" DATA "_GREEN", "(function)", "_GREEN32", "(function)", "_HEIGHT", "(function)", "_ICON", "(statement)", "_INTEGER64", "(statement)", "_LIMIT", "(statement)", "_LOADFONT", "(function)", "_LOADIMAGE", "(function)", "_MK$", "(function)", "_MOUSEBUTTON", "(function)" DATA "_MOUSEHIDE", "(statement)", "_MOUSEINPUT", "(function)", "_MOUSESHOW", "(statement)", "_MOUSEWHEEL", "(function)", "_MOUSEX", "(function)", "_MOUSEY", "(function)", "_NEWIMAGE", "(function)", "_OPENCLIENT", "(function)", "_OPENCONNECTION", "(function)", "_OPENHOST", "(function)" DATA "_PALETTECOLOR", "(statement)", "_PALETTECOLOR", "(function)", "_PIXELSIZE", "(function)", "_PRINTMODE", "(statement)", "_PRINTMODE", "(function)", "_PRINTSTRING", "(statement)", "_PRINTWIDTH", "(function)", "_PUTIMAGE", "(statement)", "_RED", "(function)", "_RED32", "(function)" DATA "_RGB", "(function)", "_RGB32", "(function)", "_RGBA", "(function)", "_RGBA32", "(function)", "_ROUND", "(function)", "_SETALPHA", "(statement)", "_SNDBAL", "(statement)", "_SNDCLOSE", "(statement)", "_SNDCOPY", "(function)", "_SNDGETPOS", "(function)" DATA "_SNDLEN", "(function)", "_SNDLIMIT", "(statement)", "_SNDLOOP", "(statement)", "_SNDOPEN", "(function)", "_SNDPAUSE", "(statement)", "_SNDPAUSED", "(function)", "_SNDPLAY", "(statement)", "_SNDPLAYCOPY", "(statement)", "_SNDPLAYFILE", "(statement)", "_SNDPLAYING", "(function)" DATA "_SNDSETPOS", "(statement)", "_SNDSTOP", "(statement)", "_SNDVOL", "(statement)", "_SOURCE", "(statement)", "_SOURCE", "(function)", "_TITLE", "(statement)", "_UNSIGNED", "(statement)", "_WIDTH", "(function)", "ABS", "(function)", "ABSOLUTE", "(statement)" DATA "ACCESS", "(statement)", "ALIAS", "(statement)", "AND", "(statement)", "AND", "(statement)", "ANY", "(statement)", "APPEND", "(statement)", "AS", "(statement)", "ASC", "(function)", "ATN", "(function)", "BASE", "(statement)" DATA "BEEP", "(statement)", "BINARY", "(statement)", "BLOAD", "(statement)", "BSAVE", "(statement)", "BYVAL", "(statement)", "CALL", "(statement)", "CALL ABSOLUTE", "(statement)", "CALLS", "(statement)", "CASE", "(statement)", "CASE ELSE", "(statement)" DATA "CDBL", "(function)", "CDECL", "(statement)", "CHAIN", "(statement)", "CHDIR", "(statement)", "CHR$", "(function)", "CINT", "(function)", "CIRCLE", "(statement)", "CLEAR", "(statement)", "CLNG", "(function)", "CLOSE", "(statement)" DATA "CLS", "(statement)", "COLOR", "(statement)", "COM", "(statement)", "COMMAND$", "(function)", "COMMON", "(statement)", "COMMON SHARED", "(statement)", "CONST", "(statement)", "COS", "(function)", "CSNG", "(function)", "CSRLIN", "(function)" DATA "CVD", "(function)", "CVDMBF", "(function)", "CVI", "(function)", "CVL", "(function)", "CVS", "(function)", "CVSMBF", "(function)", "DATA", "(statement)", "DATE$", "(function)", "DATE$", "(statement)", "DECLARE", "(statement)" DATA "DECLARE", "(statement)", "DEF FN", "(statement)", "DEF SEG", "(statement)", "DEFDBL", "(statement)", "DEFINT", "(statement)", "DEFLNG", "(statement)", "DEFSNG", "(statement)", "DEFSTR", "(statement)", "DIM", "(statement)", "DO", "(statement)" DATA "DOUBLE", "(statement)", "DRAW", "(statement)", "$DYNAMIC", "(statement)", "ELSE", "(statement)", "ELSEIF", "(statement)", "END", "(statement)", "END FUNCTION", "(statement)", "END IF", "(statement)", "END SELECT", "(statement)", "END SUB", "(statement)" DATA "END TYPE", "(statement)", "ENVIRON", "(statement)", "ENVIRON$", "(function)", "EOF", "(function)", "EQV", "(statement)", "ERASE", "(statement)", "ERDEV", "(function)", "ERDEV$", "(function)", "ERL", "(function)", "ERR", "(function)" DATA "ERROR", "(statement)", "EXIT", "(statement)", "EXIT DEF", "(statement)", "EXIT DO", "(statement)", "EXIT FOR", "(statement)", "EXIT FUNCTION", "(statement)", "EXIT SUB", "(statement)", "EXP", "(function)", "FIELD", "(statement)", "FILEATTR", "(function)" DATA "FILES", "(statement)", "FIX", "(function)", "FOR", "(statement)", "FRE", "(function)", "FREEFILE", "(function)", "FUNCTION", "(statement)", "GET", "(statement)", "GET", "(statement)", "GET", "(statement)", "GOSUB", "(statement)" DATA "GOTO", "(statement)", "HEX$", "(function)", "IF", "(statement)", "IMP", "(statement)", "$INCLUDE", "(statement)", "INKEY$", "(function)", "INP", "(function)", "INPUT", "(statement)", "INPUT", "(statement)", "INPUT", "(statement)" DATA "INPUT", "(statement)", "INPUT$", "(function)", "INSTR", "(function)", "INT", "(function)", "INTEGER", "(statement)", "INTERRUPT", "(statement)", "INTERRUPTX", "(statement)", "IOCTL", "(statement)", "IOCTL$", "(function)", "IS", "(statement)" DATA "KEY", "(statement)", "KEY", "(statement)", "KILL", "(statement)", "LBOUND", "(function)", "LCASE$", "(function)", "LEFT$", "(function)", "LEN", "(function)", "LET", "(statement)", "LINE", "(statement)", "LINE INPUT", "(statement)" DATA "LINE INPUT", "(statement)", "LIST", "(statement)", "LOC", "(function)", "LOCAL", "(statement)", "LOCATE", "(statement)", "LOCK", "(statement)", "LOF", "(function)", "LOG", "(function)", "LONG", "(statement)", "LOOP", "(statement)" DATA "LPOS", "(function)", "LPRINT", "(statement)", "LPRINT USING", "(statement)", "LSET", "(statement)", "LTRIM$", "(function)", "MID$", "(function)", "MID$", "(statement)", "MKD$", "(function)", "MKDIR", "(statement)", "MKDMBF$", "(function)" DATA "MKI$", "(function)", "MKL$", "(function)", "MKS$", "(function)", "MKSMBF$", "(function)", "MOD", "(statement)", "NAME", "(statement)", "NEXT", "(statement)", "NOT", "(statement)", "OCT$", "(function)", "OFF", "(statement)" DATA "ON", "(statement)", "ON COM", "(statement)", "ON ERROR", "(statement)", "ON KEY", "(statement)", "ON PEN", "(statement)", "ON PLAY", "(statement)", "ON STRIG", "(statement)", "ON TIMER", "(statement)", "ON UEVENT", "(statement)", "ON", "(statement)" DATA "OPEN", "(statement)", "OPEN COM", "(statement)", "OPTION BASE", "(statement)", "OR", "(statement)", "OR", "(statement)", "OUT", "(statement)", "OUTPUT", "(statement)", "PAINT", "(statement)", "PALETTE", "(statement)", "PCOPY", "(statement)" DATA "PEEK", "(function)", "PEN", "(function)", "PEN", "(statement)", "PLAY", "(function)", "PLAY", "(statement)", "PMAP", "(function)", "POINT", "(function)", "POKE", "(statement)", "POS", "(function)", "PRESET", "(statement)" DATA "PRINT", "(statement)", "PRINT", "(statement)", "PRINT", "(statement)", "PRINT USING", "(statement)", "PRINT USING", "(statement)", "PSET", "(statement)", "PUT", "(statement)", "PUT", "(statement)", "PUT", "(statement)", "RANDOM", "(statement)" DATA "RANDOMIZE", "(statement)", "READ", "(statement)", "REDIM", "(statement)", "REM", "(statement)", "RESET", "(statement)", "RESTORE", "(statement)", "RESUME", "(statement)", "RETURN", "(statement)", "RIGHT$", "(function)", "RMDIR", "(statement)" DATA "RND", "(function)", "RSET", "(statement)", "RTRIM$", "(function)", "RUN", "(statement)", "SADD", "(function)", "SCREEN", "(function)", "SCREEN", "(statement)", "SEEK", "(function)", "SEEK", "(statement)", "SELECT CASE", "(statement)" DATA "SETMEM", "(function)", "SGN", "(function)", "SHARED", "(statement)", "SHELL", "(statement)", "SIGNAL", "(statement)", "SIN", "(function)", "SINGLE", "(statement)", "SLEEP", "(statement)", "SOUND", "(statement)", "SPACE$", "(function)" DATA "SPC", "(function)", "SQR", "(function)", "STATIC", "(statement)", "$STATIC", "(statement)", "STEP", "(statement)", "STICK", "(function)", "STOP", "(statement)", "STR$", "(function)", "STRIG", "(function)", "STRIG", "(statement)" DATA "STRING", "(statement)", "STRING$", "(function)", "SUB", "(statement)", "SWAP", "(statement)", "SYSTEM", "(statement)", "TAB", "(function)", "TAN", "(function)", "THEN", "(statement)", "TIME$", "(function)", "TIME$", "(statement)" DATA "TIMER", "(function)", "TIMER", "(statement)", "TO", "(statement)", "TROFF", "(statement)", "TRON", "(statement)", "TYPE", "(statement)", "UBOUND", "(function)", "UCASE$", "(function)", "UEVENT", "(statement)", "UNLOCK", "(statement)" DATA "UNTIL", "(statement)", "VAL", "(function)", "VARPTR", "(function)", "VARPTR$", "(function)", "VARSEG", "(function)", "VIEW", "(statement)", "VIEW PRINT", "(statement)", "WAIT", "(statement)", "WEND", "(statement)", "WHILE", "(statement)" DATA "WHILE", "(statement)", "WIDTH", "(statement)", "WINDOW", "(statement)", "WRITE", "(statement)", "WRITE", "(statement)", "XOR", "(statement)", -1, -1 Just loop through it until the string returns "-1". I did it like this: DO READ dummy$ READ dummy$ IF dummy$ = "-1" THEN EXIT DO numkey = numkey + 1 LOOP
DIM SHARED keyword(numkey) AS STRING DIM SHARED keytype(numkey) AS STRING
RESTORE
FOR keynum = 1 TO numkey READ keyword(keynum) READ keytype(keynum) NEXT I just realised that this is not QBASIC compatible anymore, to make it QBASIC compatible search and replace all occurances of ASC that use the second parameter with ASC2 (be sure to verify each find to see if the second parameter is used) and use this function: FUNCTION ASC2 (text, num) ASC2 = ASC(MID$(text, num, 1)) END FUNCTION
|
|
|
|
« Last Edit: February 26, 2010, 04:05:20 PM by Cyperium »
|
Logged
|
The downloads for dqb2qb64 and Venture are currently down, links will be shown at the next release of dqb2qb64. Download my custom editor for QB64 ( here (zip)).
|
|
|
|
Cyperium
|
 |
« Reply #13 on: March 16, 2010, 06:30:10 PM » |
|
The formatremovestuff$ function has been updated again to format the define statements properly. FUNCTION formatremovestuff$ (text AS STRING) IF LEN(text) >= 2 THEN DO lol = lol + 1 checking$ = "def" IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN notok = 0 IF lol > 1 THEN IF MID$(text, lol - 1, 1) <> CHR$(32) THEN notok = 1 IF MID$(LCASE$(text), lol + 3, 4) <> "int " AND MID$(LCASE$(text), lol + 3, 4) <> "str " AND MID$(LCASE$(text), lol + 3, 4) <> "dbl " AND MID$(LCASE$(text), lol + 3, 4) <> "lng " AND MID$(LCASE$(text), lol + 3, 4) <> "sng " THEN notok = 1 IF notok = 0 THEN further = 0 DO IF LEN(text) > lol + 9 + further THEN IF ASC(text, lol + 9 + further) = ASC("-") AND ASC(text, lol + 10 + further) <> ASC(",") THEN text = MID$(text, 1, lol + 9 + further - 2) + MID$(text, lol + 9 + further) END IF IF ASC(text, lol + 8 + further) = ASC("-") THEN text = MID$(text, 1, lol + 10 - 2 + further) + MID$(text, lol + 10 + further) END IF END IF IF LEN(text) > lol + 7 + further THEN IF ASC(text, lol + 7 + further) = ASC("-") THEN text = MID$(text, 1, lol + 9 - 2 + further) + MID$(text, lol + 9 + further) END IF END IF IF LEN(text) > lol + 8 + further THEN IF ASC(text, lol + 9 + further) = ASC("-") THEN text = MID$(text, 1, lol + 9 - 2 + further) + MID$(text, lol + 9 + further) END IF END IF MID$(text, lol + 7 + further, 1) = UCASE$(MID$(text, lol + 7 + further, 1)) MID$(text, lol + 8 + further, 1) = UCASE$(MID$(text, lol + 8 + further, 1)) MID$(text, lol + 9 + further, 1) = UCASE$(MID$(text, lol + 9 + further, 1)) IF MID$(text, lol + 10 + further, 1) = "," OR MID$(text, lol + 9 + further, 1) = "," OR MID$(text, lol + 8 + further, 1) = "," THEN IF MID$(text, lol + 10 + further, 1) = "," THEN further = further + 5 IF MID$(text, lol + 9 + further, 1) = "," THEN further = further + 4 IF MID$(text, lol + 8 + further, 1) = "," THEN further = further + 3 ELSE further = 0 END IF LOOP UNTIL further = 0 END IF END IF checking$ = "_define " IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN notok = 0 IF lol > 1 THEN IF MID$(text, lol - 1, 1) <> CHR$(32) THEN notok = 1 IF notok = 0 THEN further = 0 DO IF LEN(text) > lol + 10 + further THEN IF ASC(text, lol + 10 + further) = ASC("-") AND ASC(text, lol + 11 + further) <> ASC(",") AND ASC(text, lol + 13 + further) <> ASC("s") AND ASC(text, lol + 13 + further) <> ASC("S") THEN text = MID$(text, 1, lol + 10 + further - 2) + MID$(text, lol + 10 + further) END IF IF ASC(text, lol + 9 + further) = ASC("-") THEN text = MID$(text, 1, lol + 11 - 2 + further) + MID$(text, lol + 11 + further) END IF END IF IF LEN(text) > lol + 8 + further THEN IF ASC(text, lol + 8 + further) = ASC("-") THEN text = MID$(text, 1, lol + 10 - 2 + further) + MID$(text, lol + 10 + further) END IF END IF IF LEN(text) > lol + 9 + further THEN IF ASC(text, lol + 10 + further) = ASC("-") THEN text = MID$(text, 1, lol + 10 - 2 + further) + MID$(text, lol + 10 + further) END IF END IF MID$(text, lol + 8 + further, 1) = UCASE$(MID$(text, lol + 8 + further, 1)) MID$(text, lol + 9 + further, 1) = UCASE$(MID$(text, lol + 9 + further, 1)) MID$(text, lol + 10 + further, 1) = UCASE$(MID$(text, lol + 10 + further, 1)) IF MID$(text, lol + 11 + further, 1) = "," OR MID$(text, lol + 10 + further, 1) = "," OR MID$(text, lol + 9 + further, 1) = "," THEN IF MID$(text, lol + 11 + further, 1) = "," THEN further = further + 5 IF MID$(text, lol + 10 + further, 1) = "," THEN further = further + 4 IF MID$(text, lol + 9 + further, 1) = "," THEN further = further + 3 ELSE further = 0 END IF LOOP UNTIL further = 0 END IF END IF checking$ = "mid$ (" remove = 5 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "( mid$" remove = 2 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "( screen" remove = 2 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "= screen (" remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "+ screen (" remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "- screen (" remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "(screen (" remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "( screen (" remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "^ screen (" remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "\ screen (" remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "/ screen (" remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " or screen (" remove = 11 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " and screen (" remove = 12 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " xor screen (" remove = 12 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " imp screen (" remove = 12 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " not screen (" remove = 12 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " inkey$ )" remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "( inkey$" remove = 2 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN(" integer ")) = " integer " THEN text = MID$(text, 1, lol + 9 - 2) + MID$(text, lol + 9) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN(" single ")) = " single " THEN text = MID$(text, 1, lol + 8 - 2) + MID$(text, lol + 8) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN(" double ")) = " double " THEN text = MID$(text, 1, lol + 8 - 2) + MID$(text, lol + 8) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN(" long ")) = " long " THEN text = MID$(text, 1, lol + 6 - 2) + MID$(text, lol + 6) lol = lol - 1 END IF checking$ = " then " remove = 6 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ AND (lol + remove + 1 > LEN(text)) THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "call interruptx (" remove = 16 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN MID$(text, lol + 4, LEN(checking$)) = " InterruptX (" text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "( _clipboard$" remove = 2 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "timer (" remove = 6 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "as string ," remove = 10 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "as string )" remove = 10 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " integer ," remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " integer )" remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN(" as # ")) = " as # " THEN text = MID$(text, 1, lol + 6 - 2) + MID$(text, lol + 6) lol = lol - 1 END IF checking$ = "print # " remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ AND lol = 1 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "input # " remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ AND lol = 1 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "get # " remove = 6 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ AND lol = 1 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "put # " remove = 6 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ AND lol = 1 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "write # " remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ AND lol = 1 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "close # " remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ AND lol = 1 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " print # " remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " input # " remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " get # " remove = 7 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " put # " remove = 7 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " write # " remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " close # " remove = 9 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " long ," remove = 6 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " long )" remove = 6 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " single ," remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " single )" remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " double ," remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " double )" remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " _float ," remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " _float )" remove = 8 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " _bit ," remove = 6 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " _bit )" remove = 6 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " any ," remove = 5 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " any )" remove = 5 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " _byte ," remove = 7 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " _byte )" remove = 7 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " _integer64 ," remove = 12 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = " _integer64 )" remove = 12 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN(" $")) = " $" THEN IF lol > 2 THEN text = MID$(text, 1, lol + 1 - 2) + MID$(text, lol + 1) ELSE text = LTRIM$(text) IF lol > 2 THEN lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN(" %")) = " %" THEN IF lol > 2 THEN text = MID$(text, 1, lol + 1 - 2) + MID$(text, lol + 1) ELSE text = LTRIM$(text) IF lol > 2 THEN lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN(" !")) = " !" THEN IF lol > 2 THEN text = MID$(text, 1, lol + 1 - 2) + MID$(text, lol + 1) ELSE text = LTRIM$(text) IF lol > 2 THEN lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN(" :")) = " :" THEN IF lol > 2 THEN text = MID$(text, 1, lol + 1 - 2) + MID$(text, lol + 1) ELSE text = LTRIM$(text) IF lol > 2 THEN lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN(" ,")) = " ," THEN IF lol <= 2 THEN text = LTRIM$(text) END IF IF MID$(LCASE$(text), lol, LEN(" ;")) = " ;" THEN IF lol > 2 THEN text = MID$(text, 1, lol + 1 - 2) + MID$(text, lol + 1) ELSE text = LTRIM$(text) IF lol > 2 THEN lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN(" & ")) = " & " THEN IF lol > 2 THEN text = MID$(text, 1, lol + 1 - 2) + MID$(text, lol + 1) ELSE text = LTRIM$(text) IF lol > 2 THEN lol = lol - 1 END IF remove = 1 IF MID$(LCASE$(text), lol, 3) = "= =" THEN IF lol > 2 THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) ELSE text = LTRIM$(text) IF lol > 2 THEN lol = lol - 1 END IF remove = 3 IF MID$(LCASE$(text), lol, 3) = "= +" THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF remove = 3 IF MID$(LCASE$(text), lol, 3) = "* +" THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF remove = 3 IF MID$(LCASE$(text), lol, 3) = "/ +" THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, 3) = "- +" THEN text = MID$(text, 1, lol + 3 - 2) + MID$(text, lol + 3) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, 3) = "^ +" THEN text = MID$(text, 1, lol + 3 - 2) + MID$(text, lol + 3) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, 3) = "\ +" THEN text = MID$(text, 1, lol + 3 - 2) + MID$(text, lol + 3) lol = lol - 1 END IF checking$ = "> - " remove = 4 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, 3) = "> +" THEN text = MID$(text, 1, lol + 3 - 2) + MID$(text, lol + 3) lol = lol - 1 END IF checking$ = "< - " remove = 4 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, 3) = "< +" THEN text = MID$(text, 1, lol + 3 - 2) + MID$(text, lol + 3) lol = lol - 1 END IF checking$ = "<> - " remove = 5 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "<> +" remove = 4 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = ">= +" remove = 4 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "<= +" remove = 4 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, 3) = "> >" THEN IF lol > 2 THEN text = MID$(text, 1, lol + 1 - 2) + MID$(text, lol + 1) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, 3) = "< <" THEN IF lol > 2 THEN text = MID$(text, 1, lol + 1 - 2) + MID$(text, lol + 1) ELSE text = LTRIM$(text) IF lol > 2 THEN lol = lol - 1 END IF IF MID$(LCASE$(text), lol, 3) = "+ +" THEN IF lol > 2 THEN text = MID$(text, 1, lol + 1 - 2) + MID$(text, lol + 1) ELSE text = LTRIM$(text) IF lol > 2 THEN lol = lol - 1 END IF IF MID$(LCASE$(text), lol, 3) = "$ ," THEN IF lol > 2 THEN text = MID$(text, 1, lol + 2 - 2) + MID$(text, lol + 2) ELSE text = LTRIM$(text) IF lol > 2 THEN lol = lol - 1 END IF remove = 4 IF MID$(LCASE$(text), lol, LEN("+ - ")) = "+ - " THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF checking$ = "= - " remove = 4 IF MID$(LCASE$(text), lol, LEN("= - ")) = "= - " THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN("- - ")) = "- - " THEN text = MID$(text, 1, lol + 4 - 2) + MID$(text, lol + 4) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN("* - ")) = "* - " THEN text = MID$(text, 1, lol + 4 - 2) + MID$(text, lol + 4) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN("^ - ")) = "^ - " THEN text = MID$(text, 1, lol + 4 - 2) + MID$(text, lol + 4) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN(", - ")) = ", - " THEN text = MID$(text, 1, lol + 4 - 2) + MID$(text, lol + 4) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN("; - ")) = "; - " THEN text = MID$(text, 1, lol + 4 - 2) + MID$(text, lol + 4) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN("( - ")) = "( - " THEN text = MID$(text, 1, lol + 4 - 2) + MID$(text, lol + 4) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN("( -")) = "( -" THEN text = MID$(text, 1, lol + 2 - 2) + MID$(text, lol + 2) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN(" or - ")) = " or - " THEN text = MID$(text, 1, lol + 6 - 2) + MID$(text, lol + 6) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN(" and - ")) = " and - " THEN text = MID$(text, 1, lol + 7 - 2) + MID$(text, lol + 7) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN(" xor - ")) = " xor - " THEN text = MID$(text, 1, lol + 7 - 2) + MID$(text, lol + 7) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN(" imp - ")) = " imp - " THEN text = MID$(text, 1, lol + 7 - 2) + MID$(text, lol + 7) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN(" not - ")) = " not - " THEN text = MID$(text, 1, lol + 7 - 2) + MID$(text, lol + 7) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN(" to - ")) = " to - " THEN text = MID$(text, 1, lol + 6 - 2) + MID$(text, lol + 6) lol = lol - 1 END IF checking$ = " step - " IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + 8 - 2) + MID$(text, lol + 8) lol = lol - 1 END IF checking$ = " case - " IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + 8 - 2) + MID$(text, lol + 8) lol = lol - 1 END IF checking$ = " data - " IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN text = MID$(text, 1, lol + 8 - 2) + MID$(text, lol + 8) lol = lol - 1 END IF checking$ = "case - " IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ AND lol = 1 THEN text = MID$(text, 1, lol + 7 - 2) + MID$(text, lol + 7) lol = lol - 1 END IF checking$ = "data - " IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ AND lol = 1 THEN text = MID$(text, 1, lol + 7 - 2) + MID$(text, lol + 7) lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN(" )")) = " )" THEN IF lol > 2 THEN text = MID$(text, 1, lol + 1 - 2) + MID$(text, lol + 1) ELSE text = LTRIM$(text) IF lol > 2 THEN lol = lol - 1 END IF IF MID$(LCASE$(text), lol, LEN("( ")) = "( " THEN IF lol >= 1 THEN text = MID$(text, 1, lol + 2 - 2) + MID$(text, lol + 2) ELSE text = LTRIM$(text) IF lol > 1 THEN lol = lol - 1 END IF remove = 2 IF MID$(LCASE$(text), lol, LEN(") - (")) = ") - (" THEN FOR checka = lol + LEN(") - (") TO LEN(text) ch$ = MID$(text, checka, 1) IF ch$ = "," AND para = 0 THEN validrange = 1: EXIT FOR IF ch$ = "(" THEN para = 1 IF ch$ = ")" THEN para = 0 NEXT IF validrange THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) text = MID$(text, 1, lol + remove - 1) + MID$(text, lol + remove + 1) lol = lol - 1 END IF END IF checking$ = "- (" remove = 2 IF MID$(LCASE$(text), lol, LEN(checking$)) = checking$ THEN FOR checka = lol + LEN(checking$) TO LEN(text) ch$ = MID$(text, checka, 1) IF ch$ = "," AND para = 0 THEN validrange = 1: EXIT FOR IF ch$ = "(" THEN para = 1 IF ch$ = ")" THEN para = 0 NEXT IF validrange THEN text = MID$(text, 1, lol + remove - 2) + MID$(text, lol + remove) lol = lol - 1 END IF END IF LOOP UNTIL lol >= LEN(text) END IF formatremovestuff$ = text END FUNCTION
|
|
|
|
« Last Edit: April 15, 2010, 09:53:34 PM by Cyperium »
|
Logged
|
The downloads for dqb2qb64 and Venture are currently down, links will be shown at the next release of dqb2qb64. Download my custom editor for QB64 ( here (zip)).
|
|
|
|