private function Dissect_Line(byval FileLine,byval FileIndex) dim strFirst dim strIF dim intIF dim strDo dim strEnd dim strExit dim intExit '截取第一个单词 strFirst=MidFirst(FileLine) select case lcase(strFirst) '对比代码行的第一个单词. case "do","loop" strDo="/" if lcase(strFirst)="do" then strDo="" if RegEx_Test("(" &; strFirst &; "\b)(.+)",FileLine) then '如果 do/loop 后面有代码 if strDo="/" then '第一个单词是 loop Dissect_Line=RegEx_Replace("(" else '第一个单词是 do Dissect_Line=RegEx_Replace("(" end if else '没有代码 Dissect_Line=RegEx_Replace("(" &; strFirst &; "\b)",FileLine,"<" &; strDo &; "asp_do>") &; strFirst &; "\b)(.+)",FileLine,"
$2") &; strFirst &; "\b)(.+)",FileLine,"$2") 分析一行代码,需要的参数是:某行 ASP 代码(FileLine) 注:exit 强行退出指令在这里不提出,请在生成流程图时注意一下.
end if case "while" Dissect_Line=RegEx_Replace("(while\b)(.+)",FileLine,"
$2") case "wend" if RegEx_Test("(wend\b)(.+)",FileLine) then 'wend 后有注解资料 Dissect_Line=RegEx_Replace("(wend\b)(.+)",FileLine,"$2 ") else Dissect_Line=RegEx_Replace("(wend\b)",FileLine,"
") end if case "case" Dissect_Line=RegEx_Replace("(case\b)(.+)",FileLine,"
$2") case "else" if RegEx_Test("(else\b)(.+)",FileLine) then 'else 后有注解资料 Dissect_Line=RegEx_Replace("(else\b)(.+)",FileLine,"
$2") else 'else 后无代码 Dissect_Line=RegEx_Replace("(else\b)",FileLine,"
") end if case "elseif" Dissect_Line=RegEx_Replace("(elseif\b)(.+)",FileLine,"
$2") case "for" Dissect_Line=RegEx_Replace("(for\b)(.+)",FileLine,"
$2") case "next" if RegEx_Test("(next\b)(.+)",FileLine) then 'next 后有注解资料 Dissect_Line=RegEx_Replace("(next\b)(.+)",FileLine,"$2") else Dissect_Line=RegEx_Replace("(next\b)",FileLine,"
") end if case "if" intIF=instr(instr(FileLine,"then"),FileLine,"'") strIF=FileLine if intIF>0 then strIF=left(FileLine,intIF) if RegEx_Test("(if\b)(.+)(then)(\W+)(\n)",strIF &;vbcrlf) then '单行 if,即 if ... the
n ... Dissect_Line=RegEx_Replace("(if\b)(.+)(then)(.+)(\n)",FileLine &;
vbcrlf,"
$2$4") else '多行 if Dissect_Line=RegEx_Replace("(if\b)(.+)(then)(.+)(\n)",FileLine vbcrlf,"$2$4") end if case "class","function","sub","property","select" Dissect_Line=RegEx_Replace("(" &; strFirst &; "\b)(\s+)(.+)",FileLine,"$3") case "public","private" select case true '确认公开声明的是什么子程序 case RegEx_Test("(sub\b)(\s+)(\w+)",FileLine) 'sub Dissect_Line=RegEx_Replace("(public|private)(\s)(sub\b)(\s+)(.+)",FileLine,"") case RegEx_Test("(function\b)(\s+)(\w+)",FileLine) 'function Dissect_Line=RegEx_Replace("(public|private)(\s)(function\b)(\s+)(.+)",FileLine,"") case RegEx_Test("(property)(\s+)(\w+)(\s+)(\w+)",FileLine) 'property Dissect_Line=RegEx_Replace("(public|private)(\s)(property)(\s+)(\w+)(\s+)(.+)",FileLin e,"VBCRLF IF REGEX_TEST("(END\B)(\S+)(\W+)(.+)(\N)",STREND) THEN '代码后有注释 DISSECT_LINE=REGEX_REPLACE("(END\B)(\S+)(\W+)(.+)(\N)",STREND,"$4") else '代码后无注释 Dissect_Line=RegEx_Replace("(end\b)(\s+)(\w+)",FileLine,"") end if else '改行代码是 end with Dissect_Line="" &; FileLine &; "" end if case "rem" Dissect_Line="" &; FileLine &; "" case else type=""$1"" ptyle=""$3"" asp_name=""$7"">") &;
Dissect_Line="" &; FileLine &; "" end select end function '************************************************************* '* '* '* '************************************************************* private funct