[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 15# LTSC1809


    你直接双击就可以了

TOP

本帖最后由 jyswjjgdwtdtj 于 2023-5-16 22:14 编辑

保存为hta!
  1. <!--without jquery-->
  2. <html>
  3.   <head>
  4.     <title></title>
  5.     <link rel="stylesheet" type="text/css" href="editor.css" >
  6.   </head>
  7.   <body>
  8.     <div class="editor_font" id="editor_main">
  9.       <div class="editor_font" id="editor_code">
  10.         <center class="editor_font editor_block" id="editor_list"style=""></center>
  11.         <div class="editor_font" id="editor_place">
  12.           <div class="editor_font editor_block" id="editor_text"></div>
  13.           <div class="editor_font" id="editor_activeline">
  14.             <span class="editor_font editor_block" id="editor_inputcursor"></span>
  15.             <div class="editor_font" id="editor_active"><div>
  16.           </div>
  17.         </div>
  18.       </div>
  19.     </div>
  20.     <div id=debug></div>
  21.     <script language=javascript src="fn.js"></script>
  22.     <script language=vbscript src="format.vbs"></script>
  23.     <script language="javascript">
  24. //new ActiveXObject("vbscript.regexp")
  25.     //def functions
  26.     //def variates
  27.     var main = byid("editor_main"),
  28.         code = byid("editor_code"),
  29.         list = byid("editor_list"),
  30.         place = byid("editor_place"),
  31.         text = byid("editor_text"),
  32.         activeline = byid("editor_activeline"),
  33.         active = byid("editor_active"),
  34.         cursor = byid("editor_inputcursor"),
  35.         fninfo = byid("fninfo"),
  36.         debug = byid("debug"),
  37.         body = document.body;
  38.     var left_c = 0,
  39.         top_l = 0,
  40.         len_c = 0,
  41.         tlen_l = 0;
  42.     var usingline;
  43.     //def element events
  44.     window.onload = function() {
  45.         var newline = ele("div");
  46.         newline.className = "editor_font editor_line";
  47.         text.appendChild(newline);
  48.         usingline = newline;
  49.         resetli();
  50.         main.focus();
  51.     }         
  52.     function addendcode(endcode){
  53.                     enter();
  54.                     write(endcode);
  55.                     for(var i=0,l=active.innerText.length;i<=l;i++){
  56.                         cursorbackward()
  57.                     }
  58.                     enter();
  59.                     write("    ");
  60.     }
  61.     main.onkeydown = function() {
  62.         var keycode = event.keyCode,
  63.             ctrl = event.ctrlKey,
  64.             shift = event.shiftKey,
  65.             alt = event.altKey;
  66.         switch (keycode) {
  67.             case 37: //left
  68.                 cursorbackward();
  69.                 break;
  70.             case 39: //right
  71.                 cursorforward();
  72.                 break;
  73.             case 38: //up
  74.                 if (top_l) {
  75.                     usingline.innerHTML = format.word(format.Space(active.innerText));
  76.                     top_l--;
  77.                     usingline = usingline.previousSibling;
  78.                     active.innerHTML = usingline.innerHTML;
  79.                     resettop();
  80.                     len_c = usingline.innerText.length;
  81.                     left_c = left_c > len_c ? len_c : left_c;
  82.                     resetleft();
  83.                     usingline.innerText = "";
  84.                 }
  85.                 break;
  86.             case 40: //down
  87.                 if (tlen_l - top_l) {
  88.                     usingline.innerHTML = format.word(format.Space(active.innerText));
  89.                     top_l++;
  90.                     usingline = usingline.nextSibling;
  91.                     active.innerHTML = usingline.innerHTML;
  92.                     resettop();
  93.                     len_c = usingline.innerText.length;
  94.                     left_c = left_c > len_c ? len_c : left_c;
  95.                     resetleft();
  96.                     usingline.innerText = "";
  97.                 }
  98.                 break;
  99.             case 13: //enter   
  100.                 t=active.innerText;
  101.                 var re=new ActiveXObject("vbscript.regexp")
  102.                 re.ignorecase=true
  103.                 re.pattern="^[ ]*If[ ]+.*?[ ]+Then[ ]*$"
  104.                 if(re.test(t)){
  105.                     addendcode("end if")
  106.                     return;
  107.                 }
  108.                 re.pattern="^[ ]*(for[ ]+.*?[ ]*=[ ]*.*?[ ]+to[ ]+.*?|for[ ]+each[ ]+.*?[ ]+in[ ]+.*?)$"
  109.                 if(re.test(t)){
  110.                     addendcode("next")
  111.                     return;
  112.                 }
  113.                 re.pattern="^[ ]*select[ ]+case[ ]+.*?$"
  114.                 if(re.test(t)){
  115.                     addendcode("end select")
  116.                     return;
  117.                 }
  118.                 re.pattern="^[ ]*(do|do[ ]+(until|while)[ ]+.*?)[ ]*$"
  119.                 if(re.test(t)){
  120.                     addendcode("loop")
  121.                     return;
  122.                 }
  123.                 re.pattern="^[ ]*while[ ]+.*?[ ]*$"
  124.                 if(re.test(t)){
  125.                     addendcode("wend")
  126.                     return;
  127.                 }
  128.                 re.pattern="^[ ]*with[ ]+.*?[ ]*$"
  129.                 if(re.test(t)){
  130.                     addendcode("end with")
  131.                     return;
  132.                 }
  133.                 re.pattern="^[ ]*((private|public)[ ]+)?function[ ]+\(.*?\)[ ]*$"
  134.                 if(re.test(t)){
  135.                     addendcode("end function")
  136.                     return;
  137.                 }
  138.                 re.pattern="^[ ]*((private|public)[ ]+)?sub[ ]+\(.*?\)[ ]*$"
  139.                 if(re.test(t)){
  140.                     addendcode("end sub")
  141.                     return;
  142.                 }
  143.                 re.pattern="^[ ]*class[ ]+\(.*?\)[ ]*$"
  144.                 if(re.test(t)){
  145.                     addendcode("end class")
  146.                     return;
  147.                 }/**/
  148.                 enter();
  149.                 break;
  150.             case 8: //backspace
  151.                 back(1)
  152.                 break;
  153.             case 46: //delete
  154.                 if (left_c < len_c) {
  155.                     cursorforward();
  156.                     back(1);
  157.                 } else if (left_c == len_c) {
  158.                     if (top_l == tlen_l) {
  159.                         break;
  160.                     }
  161.                     var next = usingline.nextSibling;
  162.                     tlen_l--;
  163.                     active.innerHTML = format.word(format.space(active.innerText + next.innerText));
  164.                     text.removeChild(next);
  165.                     len_c = active.innerText.length;
  166.                     resetli();
  167.                     resetleft();
  168.                 }
  169.                 break;
  170.             case 32: //space
  171.                 write(" ");
  172.                 break;
  173.             case 9: //tab
  174.                 if(shift){write("  ");return false;}
  175.                 write("    ");
  176.                 return false;
  177.                 break;
  178.             case 67://KEY-C
  179.                 if(ctrl){
  180.                     usingline.innerText=active.innerText
  181.                     window.clipboardData.setData("Text", text.innerText)
  182.                 }
  183.                 break;
  184.             case 112://F1
  185.                 alert(active.innerHTML);
  186.                 break;
  187.             case 113://F2
  188.                 alert(byid("editor_text").innerHTML)
  189.                 break;
  190.             case 114://F3
  191.                 alert(body.innerHTML)
  192.                 break;
  193.         }
  194.     }
  195.     main.onkeypress = function() {
  196.         var keycode = event.keyCode;
  197.         if (33 >= keycode || keycode == 127) {
  198.             return;
  199.         }
  200.         t=active.innerText
  201.         var ctrl = event.ctrlKey;
  202.         var shift = event.shiftKey;
  203.         var alt = event.altKey;
  204.         if(keycode==58){
  205.             var re=new ActiveXObject("vbscript.regexp")
  206.             re.pattern="[ ]*If[ ]+.*?[ ]+Then[ ]+.+$"
  207.             if(!re.test(t)){
  208.                 enter();
  209.                 return;
  210.             }
  211.         }
  212.         write(chr(keycode));
  213.     }
  214.     var select=false,
  215.         mouseon=false,
  216.         downleft=0,
  217.         upleft=0
  218.         downtop=0
  219.         uptop=0;
  220.     main.onmousedown=function(){
  221.         var l = Math.round((window.event.clientX - 10 - 50) / 12);
  222.         var t = Math.round((window.event.clientY - 30 + code.scrollTop) / 26); //为啥是30我也不知道
  223.         l=l<0?0:l;
  224.         t=t<0?0:t;
  225.         setTimeout(function(){
  226.             if(!mouseon){return;}
  227.             usingline.innerHTML = format.word(format.space(active.innerText));
  228.             lines=text.children;
  229.             top_l = t > tlen_l ? tlen_l : t;
  230.             len_c = lines[top_l].innerText.length;
  231.             left_c = len_c > l ? l : len_c;
  232.             usingline = lines[top_l];
  233.             active.innerHTML=format.word(format.space(usingline.innerText));
  234.             usingline.innerText = "";
  235.             resettop();
  236.             resetleft();
  237.         },0)
  238.        mouseon=true;
  239.     }
  240.     main.onmouseup=function(){
  241.         mouseon=false
  242.     }
  243.     document.onselectstart=function(){return false}
  244.     </script>
  245.   </body>
  246. </html>
复制代码

TOP

保存为fn.js
  1.   var byclass = function(classname, root, type) {
  2.       var elements = [];
  3.       root = root == undefined ? document : root;
  4.       type = type == undefined ? "*" : type;
  5.       var all = root.getElementsByTagName(type)
  6.       for (var i = 0, l = all.length; i < l; i++) {
  7.           if (all[i].className == classname) {
  8.               elements.push(all[i])
  9.           }
  10.       }
  11.       return elements;
  12.   }
  13.   var byid = document.getElementById;
  14.   var ele = document.createElement;
  15.   var append = function(target, element) {
  16.       var parent = target.parentNode;
  17.       if (parent.lastChild == target) {
  18.           parent.appendChild(element);
  19.       } else {
  20.           parent.insertBefore(element, target.nextSibling);
  21.       }
  22.   }
  23.   //简化自制光标操作
  24.   function cursorforward() {
  25.       if (left_c == len_c) {
  26.           if (top_l == tlen_l) {
  27.               return;
  28.           }
  29.           usingline.innerHTML = format.word(format.Space(active.innerText));
  30.           top_l++;
  31.           usingline = usingline.nextSibling;
  32.           active.innerHTML = usingline.innerHTML;
  33.           resettop();
  34.           len_c = usingline.innerText.length;
  35.           left_c = 0;
  36.           resetleft();
  37.           usingline.innerText = "";
  38.       } else {
  39.           len_c = active.innerText.length;
  40.           if (left_c < len_c) {
  41.               left_c++;
  42.               resetleft();
  43.           }
  44.       }
  45.   }
  46.   function cursorbackward() {
  47.       if (left_c == 0) {
  48.           if (top_l == 0) {
  49.               return;
  50.           }
  51.           usingline.innerHTML = format.word(format.Space(active.innerText));
  52.           top_l--;
  53.           usingline = usingline.previousSibling;
  54.           active.innerHTML = usingline.innerHTML;
  55.           resettop();
  56.           left_c = len_c = usingline.innerText.length;
  57.           resetleft()
  58.           usingline.innerText = "";
  59.       } else {
  60.           len_c = active.innerText.length;
  61.           if (left_c > 0) {
  62.               left_c--;
  63.               resetleft();
  64.           }
  65.       }
  66.   }
  67.   //控制左侧行栏
  68.   function resetli() {
  69.       var t = ""
  70.       for (var i = 1; i <= tlen_l + 1; i++) {
  71.           t += i + "\n";
  72.       }
  73.       list.innerText = t;
  74.   }
  75.   //控制光标位置
  76.   function resetleft() {
  77.       cursor.style.left = left_c * 12 + "px";
  78.   }
  79.   function resettop() {
  80.       activeline.style.top = top_l * 26 + "px";
  81.   }
  82.   //写、擦
  83.   function back(num) {
  84. while(num--){
  85.                 if (left_c > 0) {
  86.       var t = active.innerText;
  87.       active.innerHTML = format.word(t.slice(0, left_c -1) + t.slice(left_c));
  88.           cursorbackward();
  89.                 } else if (left_c == 0) {
  90.                     if (top_l == 0) {
  91.                        return;
  92.                     }
  93.                     prev = usingline.previousSibling;
  94.                     left_c = prev.innerText.length;
  95.                     top_l--;
  96.                     tlen_l--;
  97.                     active.innerHTML = format.word(format.space(prev.innerText + active.innerText));
  98.                     prev.innerText = "";
  99.                     text.removeChild(usingline);
  100.                     resettop();
  101.                     len_c = active.innerText.length;
  102.                     usingline = prev;
  103.                     resetli();
  104.                     resetleft();
  105.                 }
  106. }
  107.   }
  108.   function write(str) {
  109.       t = active.innerText;
  110.       active.innerHTML = format.word(t.slice(0, left_c) + str + t.slice(left_c));
  111.       len_c++;
  112.       len = str.length
  113.       while (len--) {
  114.           cursorforward();
  115.       }
  116.   }
  117.   var chr = String.fromCharCode;
复制代码
保存为editor.css
  1. .editor_font {
  2. font-family:Consolas;
  3. font-size:22px;
  4. }
  5. .editor_block {
  6. position:absolute;
  7. }
  8. .space {
  9. display:inline;
  10. }
  11. #debug {
  12. position:absolute;
  13. bottom:50px;
  14. height:50px;
  15. width:100%;
  16. background:#999999;
  17. ddisplay:none;
  18. }
  19. .string {
  20. color:#A52A2A
  21. }
  22. .comment {
  23. color:#FFA500
  24. }
  25. .functions {
  26. color:#800080
  27. }
  28. .reservedwords {
  29. color:#008000
  30. }
  31. .variants {
  32. color:#0000FF
  33. }
  34. .operators{
  35.                   color:#FFA500
  36. }
  37. .specialwords {
  38. color:yellow;
  39. }
  40. .uselesswords {
  41. color:red;
  42. }
  43. .number {
  44. color:#B5CEA8
  45. }
  46. body {
  47. overflow:hidden;
  48. background:#F5F5F5
  49.                  color:black;
  50. }
  51. #editor_main {
  52. height:100%;
  53. width:100%;
  54. }
  55. #editor_code {
  56. height:100%;
  57. overflow-y:scroll;
  58. }
  59. #editor_list {
  60. left:0px;
  61. width:50px;
  62. height:100%;
  63. background:#D3D3D3
  64. color:#FFFFFF
  65. }
  66. #editor_place {
  67. position:relative;
  68. height:100%;
  69. width:100%;
  70. left:50px;
  71. }
  72. #editor_text {
  73. height:100%;
  74. width:100%;
  75. }
  76. .editor_line {
  77. color:black;
  78. }
  79. #editor_activeline {
  80. position:relative;
  81. }
  82. #editor_inputcursor {
  83. width:1px;
  84. background:black;
  85. }
  86. #editor_active {
  87. color:#ADD8E6
  88. height:25px;
  89. width:100%;
  90. }
复制代码

TOP

本帖最后由 jyswjjgdwtdtj 于 2023-5-16 18:40 编辑

保存为format.vbs
  1. uselesswords="As Boolean Byte Currency Double Empty EndIf Enum Implements Integer Like Long LSet Optional "&_
  2.                    "ParamArray RaiseEvent RSet Shared Single Static Type TypeOf Variant"
  3.       specialwords="Debug Stop"
  4.       reservedwords="ByRef ByVal Call Case Class Const Dim Do Each Else ElseIf End Event Exit Explicit "&_
  5.                     "False For Function Get Goto If In Let Loop Me "&_
  6.                     "New Next Nothing Null On Option Preserve Private Property Public "&_
  7.                     "ReDim Rem Resume Select Set Sub Step Then To True "&_
  8.                     "Until WEnd While With"
  9.       functions="Abs Array Asc Atn CBool CByte CCur CDate CDbl CInt CLng CSng CStr Chr Cos CreateObject Date DateAdd DateDiff DatePart DateSerial DateValue Day Escape Eval Exp Filter Fix FormatCurrency FormatDateTime FormatNumber FormatPercent GetLocale GetObject GetRef Hex Hour InStr InStrRev InputBox Int IsArray IsDate IsEmpty IsNull IsNumeric IsObject Join LBound LCase LTrim Left Len LoadPicture Log Mid Minute Month MonthName MsgBox Now Oct Randomize RGB RTrim Replace Right Rnd Round ScriptEngine ScriptEngineBuildVersion ScriptEngineMajorVersion ScriptEngineMinorVersion Second SetLocale Sgn Sin Space Split Sqr StrComp StrReverse String Tan Time TimeSerial TimeValue Timer Trim TypeName UBound UCase Unescape VarType Weekday WeekdayName Year"
  10.       constants="vbBlack vbRed vbGreen vbYellow vbBlue vbMagenta vbCyan vbWhite vbBinaryCompare vbTextCompare vbSunday vbMonday vbTuesday vbWednesday vbThursday vbFriday vbSaturday vbUseSystemDayOfWeek vbFirstJan1 vbFirstFourDays vbFirstFullWeek vbGeneralDate vbLongDate vbShortDate vbLongTime vbShortTime vbObjectError vbOKOnly vbOKCancel vbAbortRetryIgnore vbYesNoCancel vbYesNo vbRetryCancel vbCritical vbQuestion vbExclamation vbInformation vbDefaultButton1 vbDefaultButton2 vbDefaultButton3 vbDefaultButton4 vbApplicationModal vbSystemModal vbOK vbCancel vbAbort vbRetry vbIgnore vbYes vbNo vbCr vbCrLf vbFormFeed vbLf vbNewLine vbNullChar vbNullString vbTab vbVerticalTab vbUseDefault vbTrue vbFalse vbEmpty vbNull vbInteger vbLong vbSingle vbDouble vbCurrency vbDate vbString vbObject vbError vbBoolean vbVariant vbDataObject vbDecimal vbByte vbArray WScript Err"
  11.       replacedwords=reservedwords&" "&functions&" "&constants&" "&specialwords
  12.       operators="Mod Eqv And Not Or Xor Is Imp"
  13.       sym=split("+ / \ < > = <= >= <> ( ) * -"," ")
  14.       symto=split("@add@ @div@ @extdiv@ @lt@ @gt@ @eq@ @ngt@ @nlt@ @neq@ @lb@ @rb@ @mul@ @sbt@"," ")
  15.       Class formatcode
  16.         Private Sub Class_Initialize()
  17.         End Sub
  18.         Public Function word(code)
  19.           Dim strings,comments
  20.           With New RegExp
  21.             .global=True
  22.             .ignorecase=True
  23.             'space
  24.             .pattern="[ ]"
  25.             code=.replace(code,"&nbsp;")
  26.             'STRING
  27.             .pattern=""".*?"""
  28.             Set strings=.execute(code)
  29.             code=.Replace(code,"@0String0@")
  30.             'COMMENT
  31.             .pattern="('|rem\s).*"
  32.             Set comments=.execute(code)
  33.             code=.replace(code,"@comment@")
  34.             'RESERVEDWORD
  35.             for i=0 to ubound(sym)
  36.                code=replace(code,sym(i),symto(i))
  37.             next
  38.             For Each w In Split(uselesswords," ")
  39.               .pattern = "(\b)" & w & "(\b)"
  40.               code = .replace(code, "$1<span c_lass=uselesswords>" & w & "</span>$2")
  41.             Next
  42.             For Each w In Split(functions," ")
  43.               .pattern = "(\b)" & w & "(\b)"
  44.               code = .replace(code, "$1<span c_lass=functions>" & w & "</span>$2")
  45.             Next
  46.             For Each w In Split(constants," ")
  47.               .pattern = "(\b)" & w & "(\b)"
  48.               code = .replace(code, "$1<span c_lass=variants>" & w & "</span>$2")
  49.             Next
  50.             For Each w In Split(reservedwords," ")
  51.               .pattern = "(\b)" & w & "(\b)"
  52.               code = .replace(code, "$1<span c_lass=reservedwords>" & w & "</span>$2")
  53.             Next
  54.             For Each w In Split(specialwords," ")
  55.               .pattern = "(\b)" & w & "(\b)"
  56.               code = .replace(code, "$1<span c_lass=specialwords>" & w & "</span>$2")
  57.             Next
  58.             For Each w In Split(operators," ")
  59.               .pattern = "(\b)" & w & "(\b)"
  60.               code = .replace(code, "$1<span c_lass=operators>" & w & "</span>$2")
  61.             Next
  62.             For Each s In strings
  63.               code=Replace(code,"@0String0@","<span c_lass=string>"&s&"</span>",1,1)
  64.             Next
  65.             For Each c In comments
  66.               code=Replace(code,"@comment@","<span c_lass=comment>"&c&"</span>",1,1)
  67.             Next
  68.             for i=0 to ubound(sym)
  69.                code=replace(code,symto(i),"<span class=operators>"&sym(i)&"</span>")
  70.             next
  71.             code=Replace(code,"c_lass","class")
  72.             word=code
  73.           End with
  74.         End Function
  75.         Function Space(code)
  76.           variate="([a-zA-Z][a-zA-Z0-9_]*|\[[a-zA-Z0-9_]*\]|-?[0-9]+|"".*?"")"
  77.           lspace=replace(code,ltrim(code),"")
  78.           code=ltrim(code)
  79.           if rtrim(code)<>code then rspace=1
  80.           code=rtrim(code)
  81.           With New RegExp
  82.             .Global = True
  83.             .IgnoreCase = True
  84.             .pattern=""".*?"""
  85.             Set strings=.execute(code)
  86.             code=.Replace(code,"@String@")
  87.             .pattern="('|rem\s).*"
  88.             Set comments=.execute(code)
  89.             code=.replace(code,"@comment@")
  90.             .Pattern = "[ ]*(=|<|>|\+|&|\*|/|\^|\\)[  ]*"
  91.             code = .Replace(code, " $1 ")
  92.             .Pattern = "[ ]*<\s*>[ ]*"
  93.             code = .Replace(code, " <> ")
  94.             .Pattern = "[ ]*<\s*=[ ]*"
  95.             code = .Replace(code, " <= ")
  96.             .Pattern = "[ ]*>\s*=[ ]*"
  97.             code = .Replace(code, " >= ")
  98.             '.Pattern = "[ ]*_[ ]*$"
  99.             'code = .Replace(code, " _")
  100.             .Pattern = "Do[ ]+(While|Until)[ ]*"
  101.             code = .Replace(code, "Do $1")
  102.             .Pattern = "End[ ]+(Sub|Function|If|Select|With|Class)[ ]*"
  103.             code = .Replace(code, "End $1")
  104.             .Pattern = "Select[ ]+Case[ ]+"&variate
  105.             code = .Replace(code, "Select Case $1")
  106.             .Pattern = "If[ ]+(.*?)[ ]+Then[ ]+(.*)$"
  107.             code = .Replace(code, "If $1 Then $2")
  108.             .pattern="for[ ]+"&variate&"[ ]+=[ ]+"&variate&"[ ]+to[ ]+"&variate
  109.             code=.replace(code,"For $1 = $2 To $3")
  110.             .pattern="for[ ]+each[ ]+"&variate&"[ ]+in[ ]+"&variate
  111.             code=.replace(code,"For Each $1 In $2")
  112.             For Each s In strings
  113.               code=Replace(code,"@String@",s,1,1)
  114.             Next
  115.             For Each c In comments
  116.               code=Replace(code,"@comment@",c,1,1)
  117.             Next
  118.             code=lspace&code
  119.             if rspace=1 then code=code&" "
  120.           End With
  121.           Space=code
  122.         End function
  123.       End Class
  124.       Set format=New formatcode
  125. function getleftspace(str)
  126. getleftspace=replace(str,ltrim(str),"")
  127. end function
复制代码

TOP

以前瞎胡写的 用着着了个高亮
Class math
  Public Function add(ByVal number1,ByVal number2)
    len1 = Len(number1):len2 = Len(number2)
    char1 = stringtochar(number1):char2 = stringtochar(number2)
    Dim result,remainder
    result = "":remainder = 0
    Do While(len1 &gt;= 1 Or len2 &gt;= 1)
      Dim n1,n2
      If (len1 &gt;= 1) Then
        n1 = char1(len1):len1 = len1-1
      Else
        n1 = 0
      End If
      If (len2 &gt;= 1) Then
        n2 = char2(len2):len2 = len2-1
      Else
        n2 = 0
      End If
      num = CDbl(n1) + CDbl(n2) + CDbl(remainder)
      remainder = (num-(num Mod 10)) / 10
      result = result &amp; (num Mod 10)
    Loop
    If remainder &gt; 0 Then result = result
    add = StrReverse(result)
  End Function

  Public Function substract(ByVal number1,ByVal number2)
    r_s = numbercompare(number1,number2)
    If r_s = 0 Then substract = 0
    If r_s = -1 Then change number1,number2
    len1 = Len(number1):len2 = Len(number2)
    char1 = stringtochar(number1):char2 = stringtochar(number2)
    Dim borrow,result
    Do While (len1 &gt;= 1 Or len2 &gt;= 1)
      If (len1 &gt;= 1) Then
        n1 = char1(len1):len1 = len1-1
      Else
        n1 = 0
      End If
      If (len2 &gt;= 1) Then
        n2 = char2(len2):len2 = len2-1
      Else
        n2 = 0
      End If
      num = CDbl(n1)-CDbl(n2) + CDbl(borrow)
      If num &lt; 0 Then
        borrow = (num-(num Mod 10)) / 10
        result = result &amp; (num + 10)
      Else
        borrow = 0
        result = result
      End If
    Loop
    For i = 2 To Len(result)
      If Right(result,1) = "0" Then
        result = Mid(result,1,Len(result)-1)
      Else
        Exit For
      End If
    Next
    result = StrReverse(result)
    If r_s = -1 Then result = "-"
    substract = result
  End Function
  Private Function stringTochar(ByVal str)
    Dim char():ReDim char(0):char(0) = Chr(0)
    For i = 1 To Len(str)
      ReDim Preserve char(UBound(char) + 1)
      char(UBound(char)) = Mid(str,i,1)
    Next
    stringtochar = char
  End Function
End Class
Set m = New math
MsgBox m.multiply("1111111","2222")

TOP

本帖最后由 jyswjjgdwtdtj 于 2023-5-21 21:30 编辑

链接:https://pan.baidu.com/s/1bhe9Fc-p1refRaAR83kOnQ?pwd=1111
提取码:1111
添加了保存 另存为 新建 打开 按钮

如果exec碰上无线循环控制台输出会卡死 不论多慢输出一次 不知道该怎么解决
1

评分人数

TOP

原来最近你在忙着搞这个,链接呢?快放上来,按上面代码做不太好用啊,

TOP

回复 22# segree


   诶呀 要体验去整个ace.js呀

TOP

回复 21# jyswjjgdwtdtj


    链接失效了    求补

TOP

返回列表