yzhang37 发表于 2013-11-6 22:53:43

谁知道怎么用 VBS 编写一个文本计算器?

http://www.cncalc.org/forum.php?mod=viewthread&tid=3062

就是以前这个,不过附件失效了。因为觉得它很方便,谁知道怎么编写?

晓零辛纳 发表于 2013-11-9 19:05:34

还不如c:\windows\system32\calc.exe...每次还要打开记事本...
所谓的文本计算器好像就是直接输入算式,然后重命名为*.vbs(Visual Basic 脚本)然后执行...
除此以外,现在的输入法一般也有计算器功能。

yzhang37 发表于 2013-11-11 18:46:13

不是,它好像是调用 Microsoft Script Control 1.0 ,可以直接计算字符串。

jjww2999 发表于 2014-2-23 16:30:34

本帖最后由 jjww2999 于 2014-2-23 16:32 编辑

{:wrong:}{:grin:}

退出时 任意键入 exit 这个单词 其中的全部和一个字母(小写)即可。

sunyiran 发表于 2018-4-12 21:09:53

源码:
'----------Start-------------
Sub main()
      Dimans,a,b,L,week,pi
      Dim LL(1000), save_list,rev_list
      Dim info, info1
      
      Set Ws=CreateObject("Wscript.Shell")
      
      
      
      info="可用 乘号:* 加号:+ 减号:- 乘方:∧" & vbCrLf & vbCrLf & "三角函数:sin(),cos(),tan(),atn()" & vbCrLf & vbCrLf & "圆周率 Pi、星期 wek, L、P 遍历算式"
      
      pi=4*Atn(1)
      '输入wek可用于查看今日之星期
      Execute "wek=weekdayname(weekday(now))"
      
      ans = "Tan(355/226)"
      crlf = String(2, vbCrLf)
      On Error Resume Next
      
      
      
      Do
               
               
                L="L=" & Chr(34) & b & Chr(34)
               
               
                Execute l
               
                Select Case l
                        
                        Case"L","l"
                        '向前翻时的操作
                        
                        rev_list=rev_list+1
                        If save_list-rev_list >0 Then
                              l=ll( save_list-rev_list)
                        Else
                              l=ll( 0)
                        End If
                        
                        Case "p","P"
                        '向后翻时的操作
                        
                        rev_list=rev_list-1
                        
                        ans=ll( save_list-rev_list+1)
                        
                        
                        
                        Case Else
                        
                        
                        ll(save_list)=l
                        save_list=save_list+1
                        rev_list=1
                        RunPath="MsHta vbscript:ClipBoardData.SetData(""Text"",""" & ans & """)(Window.Close)"
                        Ws.Run(RunPath)
                        
                        
                        
                End Select
               
                info1=vbCrLf & "当前算式位置 " &save_list-rev_list& "    " & "算式数目总计" & save_list-1
               
               
                Do
                        
                        a = InputBox(info & crlf   & a & info1 , "文本计算器", ans,13000,7800)
                        
                        IfInStr("exit",LCase(a) )<> 0 Then
                              If a<>"" Then Exit Sub
                        End If
                        
                        
                Loop Until   a<>False Or a<>""
               
               
                b=a
                a = "Ans = " & a
               
                Execute a
               
               
               
                If Err.Number Then
                        ans = Err.Description & "(请重新输入)"      
                        Err.Clear
                Else
                End If
      Loop
End Sub

Call main

'-----------End--------------


页: [1]
查看完整版本: 谁知道怎么用 VBS 编写一个文本计算器?