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

[技术讨论] 我用vbs做了个华氏度和摄氏度转换器

本帖最后由 LTSC1809 于 2023-6-3 17:03 编辑

没啥好说的,上代码,如果有好的建议请跟帖,另外如果有人能帮忙写成hta那就太好了(注意要求,我也会写hta,但是我要求选择从华氏度到摄氏度还是摄氏度到华氏度以及帮助做成三个按钮,然后输入框和运行结果的矿不要弹出,直接在页面上创建文本框和文字,因为我不会js,所以判断按钮按下然后运行指定的vbs脚本这个我不会,js一点也看不懂,但是hta有些地方只能js,很无奈):
  1. Function C_F(input)
  2. Dim output
  3. input=CDbl(input)
  4. output=32+input*1.8
  5. C_F=output
  6. End Function
  7. Function F_C(input)
  8. Dim output
  9. input=CDbl(input)
  10. output=(input-32)/1.8
  11. F_C=output
  12. End Function
  13. Dim inbox
  14. inbox=InputBox("输入CF来使用摄氏度到华氏度转换"&vbcrlf&"输入FC来使用华氏度到摄氏度转换"&vbcrlf&"输入“help”来查看帮助:","华氏度和摄氏度转换器")
  15. If inbox="CF" Then
  16. Dim incf,outcf
  17. incf=InputBox("输入摄氏度:","摄氏度到华氏度")
  18. outcf=C_F(incf)
  19. MsgBox incf&"℃="&outcf&"℉",vbokonly,"输出"
  20. ElseIf inbox="FC" Then
  21. Dim incf2,outcf2
  22. incf2=InputBox("输入华氏度:","华氏度到摄氏度")
  23. outcf2=F_C(incf2)
  24. MsgBox incf2&"℉="&outcf2&"℃"
  25. ElseIf inbox="help" Then
  26. MsgBox "华氏度和摄氏度换算公式:"&vbcrlf&"华氏度=32+摄氏度×1.8"&vbcrlf&"摄氏度=(华氏度-32)÷1.8"&vbclrf&"如果你觉得工具好用的话,去b站给LTSC1809点个赞吧",vbokonly,"help"
  27. Else
  28. MsgBox "无效输入",vbokonly,"Error"
  29. End If
复制代码

楼主,其实同一个hta程序的js和vbs变量互通,所以在点击按钮后使用js里的 var 变量名=值 的语句声明一个变量,然后后面用你会的vbs判断这个变量的值就可以了,我提供一下思路,这样可以解决button标签做的按钮只能使用你不会的js语句来做出反应的问题

TOP

自己回答自己的问题...主要是因为我已经有这个思路了,但是手懒不想写代码,于是只留个思路,等大佬写成hta或者有人用js重写我的代码

TOP

回复 5# jyswjjgdwtdtj 不需要按钮是什么意思?按钮是用来选择从哪种单位换到哪种单位的,你是要用下拉框吗
一个六年级小学生,请多指教

TOP

回复 6# jyswjjgdwtdtj 完全看不懂js代码,一点也看不懂,我只会vbs...
一个六年级小学生,请多指教

TOP

回复 7# jyswjjgdwtdtj 这个思路我真没想到,input原来还能这样用,输入一个就能显示另一个,不管输入哪个都行
一个六年级小学生,请多指教

TOP

回复 7# jyswjjgdwtdtj 为什么我用我的vbs版本输入639514华氏度,输出的结果是355282.777777778,但你做的这个hta换算器出来的结果是35528.2777777778
一个六年级小学生,请多指教

TOP

回复 11# LTSC1809 发现问题了,hta版的*1.8被错误的写成了*18
一个六年级小学生,请多指教

TOP

回复 6# jyswjjgdwtdtj

你这个有问题啊,我解决1.8错写成18以后发现输入639514出来的是35510.555555555555,正确答案是355282.777777778
一个六年级小学生,请多指教

TOP

回复 14# jyswjjgdwtdtj
论坛规定说回答如果采纳要给回答者加技术分
一个六年级小学生,请多指教

TOP

回复 15# jyswjjgdwtdtj
确实如此,不过js的代码符号明显比vbs更多,并且和c类语言很相似,符号多了让人更有一种看天书的感觉...vbs符号非常少,连大括号都没有,直接使用end语句
一个六年级小学生,请多指教

TOP

回复 19# jyswjjgdwtdtj
确实,只不过我懒不想学js...如果我一开始就学的js,现在有人叫我看看vbs,我一定也会觉得vbs太难了懒得学...
一个六年级小学生,请多指教

TOP

回复 22# jyswjjgdwtdtj
但是我之前就遇到过inputbox返回的是字符串类型,用来和数字比较,结果最后不管怎样都比较不同,就是因为一个是字符串一个是数字常量...当时百思不得其解,来了论坛求助才有人告诉我,从那以后为了不遇到奇奇怪怪的bug,我习惯给inputbox返回值当数字用的时候加上一个CDbl()函数
一个六年级小学生,请多指教

TOP

回复 21# jyswjjgdwtdtj
我一开始入门学的是bat,那个根本不用在意什么类型事不事字符串,类型是否匹配等等,还有很多像%windir%,%random%之类方便的环境变量,是真简单啊,后来心血来潮学了vbs,才慢慢了解数据类型这类的东西
一个六年级小学生,请多指教

TOP

返回列表