[Release v2] Visual Basic Colour coding

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • John
    Senior Member
    • Apr 2000
    • 4042

    [Release v2] Visual Basic Colour coding

    My first hack for vB

    In functions.php, add this in at line 425, just after several lines of code about $replacearray

    PHP Code:
    // START VISUAL BASIC PARSING HACK
    if (!function_exists("visbasparse")) {
      global 
    $kw;
      if (
    $incp) {
        include(
    "./visbas.php");
      } else {
        include(
    "./admin/visbas.php");
      }
    }
    $searcharray[] = "/(\[)(vbcode)(])(\r\n)*(.*)(\[\/vbcode\])/esiU";
    $replacearray[] = "visbasparse('\\5')";
    // END VISUAL BASIC PARSING HACK 
    And then upload visbas.php to the admin directory:
    PHP Code:
    <?php
    error_reporting
    (7);
    $kw=array("#Const","#If","Abs","Add","Alias","And","Any","AppActivate","Array","As","Asc","Atn","Base","Beep",
    "Boolean","Byte","ByVal","CBool","CByte","CCur","CDBl","CDate","CDec","CInt","CLng","CSng","CStr","CVErr","CVar",
    "Call","Case","ChDir","ChDrive","Chr","Clear","Close","Collection","Command","Compare","Const","Cos","CreateObject",
    "CurDir","Currency","DDB","Date","DateAdd","DateDiff","DatePart","DateSerial","DateValue","Day","Debug","Declare",
    "DefBool","DefByte","DefCur","DefDate","DefDbl","DefDec","DefInt","DefLng","DefObj","DefSng","DefStr","DefVar",
    "DeleteSetting","Dim","Dir","Do","DoEvents","Double","EOF","Each","Else","ElseIf","End","Endif","Environ","Eqv",
    "Erase","Err","Error","Exit","Exp","Explicit","FV","FileAttr","FileCopy","FileDateTime","FileLen","Filelen","Fix",
    "For","Format","Function","Get","GetAllSettings","GetAttr","GetObject","GetSetting","Global","GoSub","GoTo","Hex",
    "Hour","IIR","IPmt","If","Imp","In","InStr","Input #","Int","Integer","Is","IsArray","IsDate","IsEmpty","IsError",
    "IsMissing","IsNull","IsNumeric","IsObject","Item","Kill","LBound","LCase","LOF","LSet","LTrim","Left","Len","Let",
    "Lib","Like","Line Input #","Loc","Lock","Log","Long","Loop","MIRR","Me","Mid","Minute","MkDir","Mod","Module",
    "Month","MsgBox","NPV","NPer","Name","New","Next","Not","Now","Object","Oct","On","Open","Option","Or","PPmt","PV",
    "Pmt","Print","Print #","Private","Property","Public","Put","QBColor","RGB","RSet","RTrim","Raise","Randomize",
    "Rate","ReDim","Remove","Reset","Resume","Return","Right","RmDir","Rnd","SLN","SYD","SaveSetting","Second","Seek",
    "Select","SendKeys","Set","SetAttr","Sgn","Shell","Sin","Single","Space","Spc","Sqr","Static","Step","Stop","Str",
    "StrComp","StrConv","String","Sub","Switch","Tab","Tan","Then","Time","TimeSerial","TimeValue","Timer","To","Trim",
    "Type","TypeName","UBound","UCase","Unlock","Until","Val","VarType","Variant","Weekday","Wend","While","Width #",
    "With","Write #","Xor","Year",
    "Optional","InStrRev","Replace","Split","Join");

    function 
    visbasparse($text) {
      global 
    $kw;

      
    $text=str_replace("\\'""'"$text);

        
    $lines=explode("\n",$text);
        
    $val="";
        while (list(
    $brr,$line)=each($lines)) {

            if (
    substr(trim($line),0,1)=="'" or strtolower(substr(trim($line),0,4))=="rem ") {
                
    $line="<font color=\"#007F00\">$line</font>";
            } else {
                
    $quoteplace=strrpos($line,"'");
                if (
    $quoteplace>0) {
                    
    $beforequote=substr($line,0,$quoteplace);
                    if (
    countchar($beforequote,"\"")%2==0) {
                        
    $afterquote="<font color=\"#007F00\">".substr($line,$quoteplace)."</font>";
                        
    $codebit=$beforequote;
                    } else {
                        
    $afterquote="";
                        
    $codebit=$line;
                    }
                } else {
                    
    $afterquote="";
                    
    $codebit=$line;
                }

                
    reset ($kw);

                
    $codebit=$codebit";
                while (list(
    $key,$keyword)=each($kw)) {

                    
    $codebit=ereg_replace("([\r\n\\(\\)>, .])$keyword([\r\n <,.$\\(\\)])","\\1<font color=\"#00007F\">$keyword</font>\\2",$codebit);

                }
                
    $codebit=substr($codebit,1);

                if (
    $afterquote!="") {
                    
    $line=$codebit.$afterquote;
                } else {
                    
    $line=$codebit;
                }
            }
            
    $val.=$line;
        }

      
    $val=str_replace("'""\'"$val);
      
    $val str_replace("\\\"","\"",$val);
      if (
    substr($val,0,1)=="\n" or substr($val,0,1)=="\r") {
        
    $val=substr($val,1);
      }
      return 
    "</normalfont><blockquote><pre><smallfont>visual basic code:</smallfont><hr>" str_replace("<br>"""$val) . "<hr></pre><normalfont></blockquote>";

    }

    ?>
    Users can then use [vbcode] tags to access this.

    I know that this is not very useful for many people, but it could be easily modified for other programming languages.

    John

    [edit - there's something funny going on with the slashes in the PHP code. Quote this message, and use the code straight from the reply window to get it accurately within any escaping problems.]
    Last edited by John; Sat 2 Jun '01, 8:10am.
    John Percival

    Artificial intelligence usually beats real stupidity ;)
  • Thomas P
    Senior Member
    • Apr 2001
    • 1497
    • 5.6.4

    #2
    Wow, this is amazing!!!

    Together with the big amount of "wordfiles" at http://www.ultraedit.com/downloads/additional.html this is very helpful,

    Thanks & cheers,
    -Tom
    www.MCSEboard.de
    German Windows Server & IT Pro Community dedicated to Windows Client & Server Systems. MVPs inside

    Comment

    widgetinstance 262 (Related Topics) skipped due to lack of content & hide_module_if_empty option.
    Working...