cnCalc计算器论坛 [原fx-es(ms)论坛]

 找回密码
 注册
搜索
查看: 1632|回复: 4

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

[复制链接]
发表于 2013-11-6 22:53:43 | 显示全部楼层 |阅读模式
http://www.cncalc.org/forum.php?mod=viewthread&tid=3062

就是以前这个,不过附件失效了。因为觉得它很方便,谁知道怎么编写?
发表于 2013-11-9 19:05:34 | 显示全部楼层
还不如c:\windows\system32\calc.exe...每次还要打开记事本...
所谓的文本计算器好像就是直接输入算式,然后重命名为*.vbs(Visual Basic 脚本)然后执行...
除此以外,现在的输入法一般也有计算器功能。
 楼主| 发表于 2013-11-11 18:46:13 | 显示全部楼层
不是,它好像是调用 Microsoft Script Control 1.0 ,可以直接计算字符串。
发表于 2014-2-23 16:30:34 | 显示全部楼层
本帖最后由 jjww2999 于 2014-2-23 16:32 编辑

{:wrong:}{:grin:}

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

计算器(vbs脚本).vbs

1.64 KB, 下载次数: 71

文本计算器

发表于 2018-4-12 21:09:53 | 显示全部楼层
源码:
  1. '----------Start-------------
  2. Sub main()
  3.         Dim  ans,a,b,L,week,pi
  4.         Dim LL(1000), save_list,rev_list
  5.         Dim info, info1
  6.         
  7.         Set Ws=CreateObject("Wscript.Shell")
  8.         
  9.         
  10.         
  11.         info="可用 乘号:* 加号:+ 减号:- 乘方:∧" & vbCrLf & vbCrLf & "三角函数:sin(),cos(),tan(),atn()" & vbCrLf & vbCrLf & "圆周率 Pi、星期 wek, L、P 遍历算式"
  12.         
  13.         pi=4*Atn(1)
  14.         '输入wek可用于查看今日之星期
  15.         Execute "wek=weekdayname(weekday(now))"
  16.         
  17.         ans = "Tan(355/226)"
  18.         crlf = String(2, vbCrLf)
  19.         On Error Resume Next
  20.         
  21.         
  22.         
  23.         Do
  24.                
  25.                
  26.                 L="L=" & Chr(34) & b & Chr(34)
  27.                
  28.                
  29.                 Execute l
  30.                
  31.                 Select Case l
  32.                         
  33.                         Case  "L","l"
  34.                         '向前翻时的操作
  35.                         
  36.                         rev_list=rev_list+1
  37.                         If save_list-rev_list >0 Then
  38.                                 l=ll( save_list-rev_list)
  39.                         Else  
  40.                                 l=ll( 0)
  41.                         End If
  42.                         
  43.                         Case "p","P"
  44.                         '向后翻时的操作
  45.                         
  46.                         rev_list=rev_list-1
  47.                         
  48.                         ans=ll( save_list-rev_list+1)
  49.                         
  50.                         
  51.                         
  52.                         Case Else
  53.                         
  54.                         
  55.                         ll(save_list)=l
  56.                         save_list=save_list+1
  57.                         rev_list=1
  58.                         RunPath="MsHta vbscript:ClipBoardData.SetData(""Text"",""" & ans & """)(Window.Close)"
  59.                         Ws.Run(RunPath)
  60.                         
  61.                         
  62.                         
  63.                 End Select
  64.                
  65.                 info1=  vbCrLf & "当前算式位置 " &  save_list-rev_list  & "    " & "算式数目总计  " & save_list-1
  66.                
  67.                
  68.                 Do
  69.                         
  70.                         a = InputBox(info & crlf   & a & info1 , "文本计算器", ans,13000,7800)
  71.                         
  72.                         If  InStr("exit",LCase(a) )<> 0 Then
  73.                                 If a<>"" Then Exit Sub
  74.                         End If
  75.                         
  76.                         
  77.                 Loop Until   a<>False Or a<>""
  78.                
  79.                
  80.                 b=a
  81.                 a = "Ans = " & a
  82.                
  83.                 Execute a
  84.                
  85.                
  86.                
  87.                 If Err.Number Then
  88.                         ans = Err.Description & "(请重新输入)"      
  89.                         Err.Clear
  90.                 Else
  91.                 End If
  92.         Loop
  93. End Sub

  94. Call main

  95. '-----------End--------------
复制代码


您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|Archiver|手机版|cnCalc计算器论坛  

GMT+8, 2019-1-20 07:05 , Processed in 0.066370 second(s), 22 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表